저는 자체 학습 Java이고 상속에 대한 내 교과서의 일부 문제를 해결하기 위해 노력하고 있습니다. 문제는 기본적으로 수퍼 클래스 Person
을 만들고 두 개의 클래스 student
및 instructor
을 추가하는 것입니다. 여기에서 학생에게는 전공이 있고 강사에게는 월급이 있습니다. 어쨌든 여기하위 클래스 슈퍼 생성자 내에서 부모 메서드 호출
내가 가진 무엇
모든 학생의 이름과 생년월일을 가지고 있기 때문에 지금까지
public class Person {
private String name;
private String date;
public Person(String name, String date)
{
this.name = name;
this.date = date;
}
public String getName()
{
return name;
}
public String getDate()
{
return date;
}
public String toString()
{
return "The name of the person is :" + getName() + " And this person was born in " + getDate();
}
}
Student.java
public class Student extends Person {
private String major;
public Student(String major)
{
super(super.getName(),super.getDate()); // ERROR
this.major = major;
}
}
내 생각의 과정, 슈퍼 생성자를 호출하면를 반환하는 메서드를 전달할 수 있습니다. 제 원래 수퍼 클래스에있는의 이름입니다. 물론, 당신이이 난 그냥 방법 .getName()
및 .getDate()
는, i '를 호출하여 생성자 Student
에 두 개의 추가 변수를 만들고 저장 한 것이라고 생각 단지
public Student(String name, String birthDate, String major)
{
super(name,birthDate);
this.major = major;
}
을하는 것입니다 솔루션을 작동하지 않습니다 알 수 있습니다 이 장을 다시 읽지 만 문제점이 어디에 있는지 정말 이해하지 못합니다.
TLDR 무슨
super(super.getName(),super.getDate());
매우
'슈퍼 (슈퍼.getName(), super.getDate());', 어떤 값이 슈퍼 생성자 ('Person')에 실제로 전달 될 것인가? –
'Person'마다 이름과 생년월일이 있기 때문에 학생의 기본 정보로 전달되지 않습니까? 거기에서 나는'학생 '의'주요'을 조작 할 수있는 방법을 가질 수있다. – bill
그들은 이름과 생년월일이 있는가 _yet_? 현재 예제를 취해 봅시다.'getName()'은 무엇을 반환할까요? –