Java 오류: 기본 생성자에 대해 암시적 슈퍼 생성자가 정의되지 않음
코드 중복을 줄이려는 시도에서 제거할 때 오류가 발생했습니다. 추상 클래스를 확장하는 하위 클래스의 생성자. 이 오류는 클래스에 명시적으로 정의된 생성자가 없을 때 Java 컴파일러에서 생성된 암시적 기본 생성자에서 발생합니다.
기본 생성자에는 인수가 없으며 public ACSubClass() { super(); }. 그러나 BaseClass가 생성자를 선언하므로 이 기본 생성자를 사용할 수 없으므로 컴파일 시간 오류가 발생합니다.
오류 원인:
이 문제는 Java의 상속 의미에 있습니다. 하위 클래스는 상위 클래스의 생성자를 자동으로 상속하지 않습니다. 하위 클래스가 생성자를 정의하지 않는 경우 상위 클래스에서 기본 생성자를 암시적으로 상속합니다.
해결책:
이 오류를 해결하려면 두 가지 주요 옵션이 있습니다. :
주요 사항:
Java의 생성자 상속 규칙은 하위 클래스가 super()를 생성하지 못하도록 설계되었습니다. 부모 클래스의 잘못된 인스턴스. 기본 클래스와 하위 클래스 모두의 생성자 요구 사항을 신중하게 고려하면 누락되거나 부적절한 구문과 관련된 런타임 오류를 방지할 수 있습니다.
위 내용은 하위 클래스 생성자를 제거하면 Java에서 \'암시적 슈퍼 생성자 정의되지 않음\'이 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!