Java - (Error) There is no default constructor available in (상속)

왕효준·2023년 6월 9일
0

Java

목록 보기
6/7

에러 설명

Parent 클래스를 상속해서 Child 클래스를 다음과 같이 작성했는데, Child 생성자에서 컴파일 에러가 발생한다. 그 이유와 해결 방법은?

코드

Parent 클래스

package Questions.Inhertance.Q6;

public class Parent {
    public String name;

    public Parent(String name) {
        this.name = name;
    }
}

Child 클래스

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의 기본 생성자를 호출하기 때문에 생긴 오류.

해결 코드

Child 클래스

package Questions.Inhertance.Q6;

public class Child extends Parent{
    public int studentNo;

    public Child(String name, int studentNo){
        super(name);
        this.studentNo = studentNo;
    }
}
profile
자바 백엔드 개발자

0개의 댓글