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

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

PHPz
PHPz앞으로
2024-02-11 09:30:08662검색

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으로 문의하시기 바랍니다. 삭제