나는 다음과 같은 문제가 있습니다 implicit super constructor is undefined must invoke another constructor java
. 나는 두 개의 클래스 중 하나 상속을 가지고 슈퍼를 호출 - 방법.
사람 클래스 :
public class Person {
private String firstName;
private String name;
private Date birthday;
private Gender gender = Gender.Unknown;
Person(String fn, String n, Date d, Gender g){
firstName = fn;
name = n;
birthday = d;
gender = g;
}
Person(Person p){
firstName = p.firstName;
name = p.name;
birthday = new Date(p.birthday);
gender = p.gender;
}
Person(String fn, String n){
firstName = fn;
name = n;
}
그리고 두 번째 클래스 :
public class Student extends Person implements Noten {
private int nr;
private String st;
Student(int m, String s){
this.nr= m;
this.st= s;
}
Student(Person p) {
super(p);
// TODO Auto-generated constructor stub
}
왜 확장에 Person 클래스에 학생 클래스는 Stundet (사람 p)를 구현해야합니다 - 방법?
하나의 해결 방법 : 사람을 () 추가 - 방법을에 Person-Class
:
Person(){
System.out,println("Hello World"};
아직 작동하지 않습니다.
첫 번째 질문 : 왜 슈퍼 (p)를 않습니다 - 방법이 작동하지 않는 이유는 무엇입니까?
두 번째 질문 : 어떻게 심지어 추가하지 않고 내가 그것을 작동하게 할 Person()
-받는 매개 변수없이를 Person-Class
?
세 번째 질문 : 왜 추가하지 않았다 Person()
- 일을?
첫 번째 질문 : 왜 슈퍼 (p)를 않습니다 - 방법이 작동하지 않는 이유는 무엇입니까?
이 점에서 잘 작동 두 번째 Student
생성자입니다.
두 번째 질문 : 심지어 사람 () 추가하지 않고 내가 그것을 작동하게 할 방법 -는 Person 클래스에 매개 변수없이를?
당신은 호출 할 필요가 하나 의 Person
사용하여 생성자 super(...)
는 점에서 구문을 먼저 Student
당신이 있기 때문에, 생성자 해야한다 적어도 제공 firstName
과를 name
.
세 번째 질문 : 왜 사람 ()를 추가하지 않았다 - 일을?
에 인수가없는 생성자를 추가 Person
컴파일러는 이제 암시 적으로 그 호출 할 수 있기 때문에, 작업을 수행 Person
의 생성자 첫번째 Student
생성자를.