目录
问题内容
解决方法
首页 Java 对Java中的多态性和静态绑定感到困惑

对Java中的多态性和静态绑定感到困惑

Feb 11, 2024 am 09:30 AM

php小编西瓜经常收到关于Java中的多态性和静态绑定的问题。这两个概念在Java中经常被提及,但对于初学者来说可能会感到困惑。在本文中,我们将简要介绍多态性和静态绑定的概念,并解答一些常见问题,帮助读者更好地理解和应用这些概念。

问题内容

我对java还是很陌生。所以我一边玩java一边阅读多态性和静态绑定。我来这里是为了澄清我的思考过程是否正确。

class a {
    void foo(a a) {
        system.out.println("aaaaaa");
    }

}

class b extends a {
    void foo(b a) {
        system.out.println("bbbbb");
    }

}

class c extends b{
    void foo (a a){
        system.out.println("cccccbbbb");
    }

}
登录后复制

我创建了以下名为 c 的对象,并以 c 作为参数调用 foo。

C c = new C();
c.foo(c); // the output is BBBBB
登录后复制

从这篇关于java重载和动态绑定的问题中,我了解到如果在类中找不到发送的参数,它将把参数(在本例中为c)向上转换为在类中可以找到的参数(在此情况 a,因为 void foo (a a))。但如果是这样的话,它不应该打印“cccccbbbb”吗?通过静态绑定?void foo (a a))。但如果是这样的话,它不应该打印“cccccbbbb”吗?通过静态绑定?

解决方法

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

解决方法

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

有 2 个重载方法,名称为 foo🎜
// defined in the class C
void foo (A a){
    System.out.println("CCCCCBBBB");
}

// inherited from the class B
void foo(B a) {
    System.out.println("BBBBB");
}
登录后复制
🎜当我们使用类 🎜 的参数调用方法 foo 时,将选择最具体的一个 - 类 b 在层次结构上比类 a 更接近,因此调用 foo(b) 。🎜

以上是对Java中的多态性和静态绑定感到困惑的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)