"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 하위 클래스 생성자에서는 'super()'가 필수인가요?

하위 클래스 생성자에서는 'super()'가 필수인가요?

2024-11-08에 게시됨
검색:564

Is `super()` Mandatory in Subclass Constructors?

하위 클래스 생성자에서 super()의 필요성 이해

Java에서 하위 클래스를 생성할 때 super()가 하위 클래스 생성자에서는 메서드 호출이 필수입니다. 이 문서에서는 이 주제를 자세히 다루며 다음 측면에 대한 명확성을 제공합니다.

컴파일러에 의한 super() 자동 삽입

이 질문에 대한 짧은 대답은 '아니요'입니다. 컴파일러는 명시적으로 지정되지 않은 경우 하위 클래스의 생성자에 super() 호출을 자동으로 삽입하지 않습니다. 따라서 하위 클래스 생성자는 항상 호출하려는 상위 클래스 생성자를 지정해야 합니다.

Non-Existence of No-Args Constructor Equivalents

하위 클래스 생성자의 super() 호출은 컴파일러가 인수 없이 동등한 생성자를 삽입한다는 의미는 아닙니다. 슈퍼클래스에 액세스 가능한 인수 없는 생성자가 없는 경우 super() 호출을 생략하면 컴파일 오류가 발생합니다.

인수가 존재할 때 생성자 호출

인수가 있는 하위 클래스 생성자를 고려해보세요. 이 경우 호출할 슈퍼클래스 생성자를 지정하려면 super() 호출이 필요합니다. 호출되는 슈퍼클래스 생성자는 주로 서브클래스의 생성자에 전달된 실제 인수에 의해 결정됩니다. super() 호출에 인수 목록이 지정되지 않은 경우 하위 클래스 생성 인수의 순서 및 유형과 일치하는 슈퍼클래스 생성자를 호출합니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3