>Java >java지도 시간 >중첩 방법은 다형성을 지원합니다.

중첩 방법은 다형성을 지원합니다.

DDD
DDD원래의
2024-09-18 22:53:53646검색

메소드 오버레이:

  • 단순한 이름 지정의 문제가 아니라 Java의 기본 기능입니다.

  • 동적 메소드 디스패치 개념을 기반으로 합니다.

동적 메서드 디스패치:

  • 재정의 메서드에 대한 호출이 컴파일 타임이 아닌 런타임에 해결되는 메커니즘입니다.

  • 는 Java에서 다형성을 구현할 수 있습니다
  • 작동 방식:

슈퍼 클래스 참조 변수는 서브 클래스 객체를 참조 할 수 있습니다 슈퍼클래스 참조를 통해 재정의된 메서드를 호출하는 경우 호출 당시의 객체 유형에 따라 실행할 메서드 버전이 결정됩니다.

  • 따라서 실행할 메소드의 선택은 런타임에 이루어집니다.

  • 중요도:
  • 참조 변수의 유형이 아닌 참조 개체의 유형에 따라 재정의된 메서드의 버전이 실행됩니다.

이를 통해 슈퍼클래스 참조 변수에 의해 참조되는 다양한 유형의 객체가 재정의된 메서드의 다양한 버전을 호출할 수 있습니다.

프로그램 구조:

Métodos sobrepostos dão suporte ao polimorfismo

Métodos sobrepostos dão suporte ao polimorfismo슈퍼클래스: Sup, who() 메소드 사용

하위 클래스: Sub1 및 Sub2는 모두 who() 메서드를 재정의합니다.

  • main()에서 실행:
  • superOb(Sup 유형), subOb1(Sub1 유형) 및 subOb2(Sub2 유형) 개체 생성

유형의 기준 변수 supref는 다른 객체를 참조하는 데 사용됩니다.

행동:
  • supRef.who() 호출은 참조 변수 supRef의 유형이 아닌 호출 당시 참조된 객체의 유형을 기반으로 실행할 메소드의 버전을 결정합니다.
  • 프로그램 출력:

참조된 객체의 유형(superOb, subOb1, subOb2)에 따라 해당 버전의 who() 메소드가 호출되어 표시됩니다.

  • 이는 실행되는 메서드가 런타임에 결정되어 다형성을 구현하는 동적 디스패치의 개념을 보여줍니다.

위 내용은 중첩 방법은 다형성을 지원합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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