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

来源:互联网 发布:郑州启凡网络 编辑:程序博客网 时间:2024/06/05 19:39

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

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

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

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

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

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


8.3 构造器和多态

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

8.3.1 构造器的调用顺序

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


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

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










原创粉丝点击