"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 중첩 방법은 다형성을 지원합니다.

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

2024-11-07에 게시됨
검색:611

메서드 재정의:

  • 단순한 이름 지정의 문제가 아니라 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 유형) 객체 생성.

  • Sup 유형의 supRef 참조 변수는 다양한 객체를 참조하는 데 사용됩니다.

행동:

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

프로그램 출력:

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

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

릴리스 선언문 이 기사는 https://dev.to/devsjavagirls/metodos-sobrepostos-dao-suporte-ao-polimorfismo-457j?1에서 복제됩니다.1 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3