> Java > 본문

Java의 다형성과 정적 바인딩에 대한 혼란

PHPz
풀어 주다: 2024-02-11 09:30:08
앞으로
655명이 탐색했습니다.

PHP 편집자 Xigua는 Java의 다형성 및 정적 바인딩에 대한 질문을 자주 받습니다. 이 두 가지 개념은 Java에서 자주 언급되지만 초보자에게는 혼란스러울 수 있습니다. 이 기사에서는 다형성과 정적 바인딩의 개념을 간략하게 소개하고 자주 묻는 질문에 답변하여 독자가 이러한 개념을 더 잘 이해하고 적용할 수 있도록 돕습니다.

질문 내용

저는 아직 Java를 처음 접합니다. 그래서 다형성과 정적 바인딩에 대해 읽으면서 Java를 가지고 놀았습니다. 나는 내 사고 과정이 올바른지 명확히하기 위해 여기에 있습니다.

으아아아

저는 c라는 다음 개체를 만들고 c를 인수로 사용하여 foo를 호출했습니다.

으아아아

Java의 오버로딩 및 동적 바인딩에 대한 이 질문에서 전송된 매개변수가 클래스에서 발견되지 않으면 매개변수(이 경우 c)를 클래스에서 찾을 수 있는 매개변수로 업캐스트한다는 것을 이해합니다. 인수(이 경우에는 void foo (a a)이므로 a)입니다. 하지만 그렇다면 "cccccbbbb"를 인쇄해야 하지 않나요? 정적 바인딩을 통해? void foo (a a))。但如果是这样的话,它不应该打印“cccccbbbb”吗?通过静态绑定?

解决方法

c 有 2 个重载方法,名称为 foo

Solution

c 的参数调用方法 foo 时,将选择最具体的一个 - 类 b 在层次结构上比类 a 更接近,因此调用 foo(b)Class

에는 foo🎜라는 2개의 오버로드된 메서드가 있습니다. 으아아아 🎜클래스 🎜의 인수를 사용하여 foo 메서드를 호출하면 가장 구체적인 클래스가 선택됩니다. 즉 a 클래스보다 계층적으로 높은 클래스 b입니다. 더 가깝기 때문에 foo(b)가 호출됩니다. 🎜

위 내용은 Java의 다형성과 정적 바인딩에 대한 혼란의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿