>Java >java지도 시간 >Java 암시적 슈퍼 생성자 오류: \'암시적 슈퍼 생성자...가 기본 생성자에 대해 정의되지 않았습니다\'를 수정하는 방법은 무엇입니까?

Java 암시적 슈퍼 생성자 오류: \'암시적 슈퍼 생성자...가 기본 생성자에 대해 정의되지 않았습니다\'를 수정하는 방법은 무엇입니까?

DDD
DDD원래의
2024-12-25 12:21:35694검색

Java Implicit Super Constructor Error: How to Fix

Java 오류: 기본 생성자에 대해 암시적 슈퍼 생성자가 정의되지 않음

Q: 하위 클래스 및 추상 기본 클래스의 기본 생성자 오류

Java 개발자는 "암시적 슈퍼 생성자"라는 오류가 발생했습니다. BaseClass()는 기본 생성자에 대해 정의되지 않았습니다." 하위 클래스에서 중복 생성자를 제거한 후. 그들은 템플릿 메소드 패턴을 고수하면서 생성자를 제거하는 것이 가능한지 궁금해합니다.

A: 생성 및 기본 생성자

오류는 기본 클래스( BaseClass)는 생성자(public BaseClass(String someString))를 선언하여 기본 생성자를 비활성화합니다(인수 없음). 하위 클래스(ACSubClass)에서 생성자를 제거할 때 컴파일러는 기본 생성자를 통해 기본 클래스(super())의 인수가 없는 생성자에 대한 암시적 호출을 삽입합니다. BaseClass에는 인수 없는 생성자가 없으므로 이는 불법입니다.

가능한 해결 방법:

  1. BaseClass에서 생성자 제거: 기본 클래스가 기본 생성자만 갖도록 허용합니다. 상속.
  2. BaseClass에서 인수 없는 생성자 선언: 유일한 생성자로서 또는 다른 생성자와 함께 인수 없는 생성자를 기본 클래스에 추가합니다.

그러나 기본 클래스에 생성자 인수가 필요한 경우 이러한 솔루션은 실현 가능하지 않을 수 있습니다.

또한 다음 사항을 고려하세요. 디자인 리팩토링:

  • 팩토리를 사용하여 하위 클래스 인스턴스 생성: 필요한 인수를 사용하여 하위 클래스 생성을 처리하는 팩토리 클래스를 생성합니다.
  • getName() 메서드에 인수 전달: 인수가 반환된 값을 사용자 정의할 수 있도록 getName() 메서드를 설계합니다. 이름값입니다.

위 내용은 Java 암시적 슈퍼 생성자 오류: '암시적 슈퍼 생성자...가 기본 생성자에 대해 정의되지 않았습니다'를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.