추상 클래스를 실제로 인스턴스화할 수 있습니까?
인터뷰 중에 "추상 클래스를 인스턴스화할 수 있습니까?"라는 일반적인 질문이 제기됩니다. 전통적인 대답은 "아니요"이지만 이 응답은 이제 구식이 될 수 있습니다.
익명 클래스의 수수께끼
이 수수께끼를 밝히기 위해 JLS(Java 언어 사양) 섹션 15.9.1 및 12.5에 도입된 개정된 이해입니다. 구체적으로 클래스 인스턴스 생성 표현식이 클래스 본문으로 끝나면 익명 하위 클래스가 선언됩니다. 따라서 인스턴스화되는 클래스는 추상 클래스 자체가 아닌 익명 하위 클래스가 됩니다.
실제 데모
이 개념을 설명하려면 다음 코드를 고려하세요.
이 코드를 컴파일하면 익명 하위 클래스에 해당하는 My$1.class 파일이 생성되는 것을 볼 수 있습니다. new My() {}를 통해 수행된 익명 클래스 인스턴스화를 위해 생성되었습니다.
결론
따라서 "추상 클래스를 인스턴스화할 수 있습니까?"라는 질문에 대한 대답은 다음과 같습니다. 진화했습니다. 추상 클래스를 직접 인스턴스화할 수는 없지만 추상 클래스의 인스턴스처럼 동작하는 익명 하위 클래스의 인스턴스를 생성하여 추상 클래스 내의 메서드를 호출하고 속성에 액세스할 수 있습니다.
위 내용은 추상 클래스를 인스턴스화할 수 있나요? 수정된 답변의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!