《Java编程思想》--多态--第8章

本文介绍了多态的概念及其在Java中的实现方式,包括后期绑定的原理。此外还探讨了构造器与多态之间的关系,以及在继承关系中构造器调用的顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多态也称作动态绑定、后期绑定或运行时绑定。

将一个方法调用同一个方法主体关联起来被称作绑定

若在程序执行前进行绑定(如果有的话,由编译器和连接程序实现),叫做前期绑定。前期绑定是面向过程的语言中不需要选择就默认的绑定方式。例如,C只有一种方法调用,那就是前期绑定。

后期绑定的含义就是在运行时根据对象的类型进行绑定。如果一种语言想实现后期绑定,就必须具有某种机制,以便在运行时能判断对象的类型,从而调用恰当的方法。也就是说,编译器一直不知道对象的类型,但是方法调用机制能找到正确的方法体,并加以调用。

Java中出了static方法和final方法(private方法属于final方法)之外,其他所有的方法都是后期绑定。

只有普通方法的调用可以是多态的。


8.3 构造器和多态

构造器实际上是static方法,只不过该static声明是隐式的。

8.3.1 构造器的调用顺序

构造器的调用顺序是很重要的。当进行继承时,我们已经知道基类的一切,并且可以访问基类中任何声明为public和protected的成员。这意味着在导出类中,必须假定基类的所有成员都是有效的。一种标准的方法时,构造动作一经发生,那么对象所有部分的全体成员都会得到构建。然而,在构造器内部,我们必须确保所要使用的成员都已经构建完毕。为确保这一目的,唯一的办法就是首先调用基类构造器。那么在进入导出类构造器时,在基类中可供我们访问的成员都已经得到初始化。


is-a 基类和导出类有完全相同的接口(方法)

is-like-a导出类有一些扩展的方法。










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值