메소드 오버레이:
단순한 이름 지정의 문제가 아니라 Java의 기본 기능입니다.
동적 메소드 디스패치 개념을 기반으로 합니다.
동적 메서드 디스패치:
재정의 메서드에 대한 호출이 컴파일 타임이 아닌 런타임에 해결되는 메커니즘입니다.
슈퍼 클래스 참조 변수는 서브 클래스 객체를 참조 할 수 있습니다 슈퍼클래스 참조를 통해 재정의된 메서드를 호출하는 경우 호출 당시의 객체 유형에 따라 실행할 메서드 버전이 결정됩니다.
따라서 실행할 메소드의 선택은 런타임에 이루어집니다.
이를 통해 슈퍼클래스 참조 변수에 의해 참조되는 다양한 유형의 객체가 재정의된 메서드의 다양한 버전을 호출할 수 있습니다.
슈퍼클래스: Sup, who() 메소드 사용
하위 클래스: Sub1 및 Sub2는 모두 who() 메서드를 재정의합니다.
유형의 기준 변수 supref는 다른 객체를 참조하는 데 사용됩니다.
행동:supRef.who() 호출은 참조 변수 supRef의 유형이 아닌 호출 당시 참조된 객체의 유형을 기반으로 실행할 메소드의 버전을 결정합니다.
참조된 객체의 유형(superOb, subOb1, subOb2)에 따라 해당 버전의 who() 메소드가 호출되어 표시됩니다.
위 내용은 중첩 방법은 다형성을 지원합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!