>Java >java지도 시간 >추상 클래스를 인스턴스화할 수 있나요? 수정된 답변

추상 클래스를 인스턴스화할 수 있나요? 수정된 답변

Patricia Arquette
Patricia Arquette원래의
2024-12-09 21:28:15603검색

Can We Instantiate an Abstract Class?  A Revised Answer

추상 클래스를 실제로 인스턴스화할 수 있습니까?

인터뷰 중에 "추상 클래스를 인스턴스화할 수 있습니까?"라는 일반적인 질문이 제기됩니다. 전통적인 대답은 "아니요"이지만 이 응답은 이제 구식이 될 수 있습니다.

익명 클래스의 수수께끼

이 수수께끼를 밝히기 위해 JLS(Java 언어 사양) 섹션 15.9.1 및 12.5에 도입된 개정된 이해입니다. 구체적으로 클래스 인스턴스 생성 표현식이 클래스 본문으로 끝나면 익명 하위 클래스가 선언됩니다. 따라서 인스턴스화되는 클래스는 추상 클래스 자체가 아닌 익명 하위 클래스가 됩니다.

실제 데모

이 개념을 설명하려면 다음 코드를 고려하세요.

이 코드를 컴파일하면 익명 하위 클래스에 해당하는 My$1.class 파일이 생성되는 것을 볼 수 있습니다. new My() {}를 통해 수행된 익명 클래스 인스턴스화를 위해 생성되었습니다.

결론

따라서 "추상 클래스를 인스턴스화할 수 있습니까?"라는 질문에 대한 대답은 다음과 같습니다. 진화했습니다. 추상 클래스를 직접 인스턴스화할 수는 없지만 추상 클래스의 인스턴스처럼 동작하는 익명 하위 클래스의 인스턴스를 생성하여 추상 클래스 내의 메서드를 호출하고 속성에 액세스할 수 있습니다.

위 내용은 추상 클래스를 인스턴스화할 수 있나요? 수정된 답변의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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