>Java >java지도 시간 >Java는 진정한 다중 상속을 허용합니까?

Java는 진정한 다중 상속을 허용합니까?

DDD
DDD원래의
2024-10-24 22:15:02648검색

Does Java Allow for True Multiple Inheritance?

Java는 다중 상속을 지원합니까?

면접 중에 많은 후보자들이 Java의 다중 상속 지원에 대한 논쟁에 직면합니다. 다른 클래스와 Object를 확장하는 클래스는 이것이 다중 상속을 구성하는지에 대한 질문을 제기합니다. 개념을 자세히 살펴보겠습니다.

Java의 상속 모델

Java는 단일 상속 모델을 따릅니다. 즉, 클래스는 단일 상위 클래스에서만 상속할 수 있습니다. 그러나 클래스가 다른 클래스에서 상속받은 상위 클래스에서 상속할 수 있는 다중 레벨 상속을 지원합니다.

인터뷰 질문 설명

시나리오 인터뷰 질문에 설명된 내용에는 Object 클래스를 확장하는 클래스 A 확장 클래스 B가 포함됩니다. 이것이 다중 상속을 나타낸다는 면접관의 제안은 올바르지 않습니다. 이 상황은 다중 상속이 아닌 다중 레벨 상속의 예입니다.

내부 구현

컴파일러는 객체의 멤버를 확인할 때 상속 계층 구조를 순회합니다. 적절한 메소드 구현을 찾으십시오. 클래스 A가 클래스 B에서 상속되고 클래스 Object에서 상속되는 예에서 컴파일러는 클래스 A, 클래스 B, 마지막으로 클래스 Object에서 원하는 멤버를 확인합니다.

Java 인터페이스 및 다중 "is A" 관계

Java 인터페이스는 여러 유형의 "is a" 관계를 허용합니다. 클래스는 하나 이상의 인터페이스를 구현할 수 있습니다. 그러나 인터페이스 구현은 클래스가 인터페이스 메소드에 대한 자체 구현을 제공해야 하기 때문에 전통적인 의미의 다중 상속을 구성하지 않습니다.

결론

요약하면 Java 다중 수준 상속을 지원하지만 기존 다중 상속은 지원하지 않습니다. 클래스가 자체적으로 Object를 확장하는 다른 클래스를 확장하는 경우 이는 다중 상속으로 간주되지 않습니다. 컴파일러는 자식 클래스부터 시작하여 필요에 따라 체인 위로 이동하면서 상속 계층 구조를 통해 멤버 액세스를 해결합니다. 인터페이스는 다중 "is a" 관계에 대해 다른 메커니즘을 제공하지만 다중 상속을 완전히 지원하지는 않습니다.

위 내용은 Java는 진정한 다중 상속을 허용합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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