Parent 클래스를 상속해서 Child 클래스를 다음과 같이 작성했는데, Child 생성자에서 컴파일 에러가 발생한다. 그 이유와 해결 방법은?
package Questions.Inhertance.Q6;
public class Parent {
public String name;
public Parent(String name) {
this.name = name;
}
}
package Questions.Inhertance.Q6;
public class Child extends Parent{
public int studentNo;
public Child(String name, int studentNo){
this.name = name;
this.studentNo = studentNo;
}
}
상속 시 자식 클래스는 자신의 생성자를 호출하기 전에 부모 클래스의 생성자를 호출해야 하는데, 부모 클래스의 생성자에 매개변수가 있을 경우 super() 을 사용해서 명시적으로 호출해줘야 한다. 자녀 생성자에 super()이 없어 부모 클래스인 Parent의 기본 생성자를 호출하기 때문에 생긴 오류.
package Questions.Inhertance.Q6;
public class Child extends Parent{
public int studentNo;
public Child(String name, int studentNo){
super(name);
this.studentNo = studentNo;
}
}