《Java编程思想》--多态--第8章
2017-12-11 12:45
183 查看
多态也称作动态绑定、后期绑定或运行时绑定。
将一个方法调用同一个方法主体关联起来被称作绑定。
若在程序执行前进行绑定(如果有的话,由编译器和连接程序实现),叫做前期绑定。前期绑定是面向过程的语言中不需要选择就默认的绑定方式。例如,C只有一种方法调用,那就是前期绑定。
后期绑定的含义就是在运行时根据对象的类型进行绑定。如果一种语言想实现后期绑定,就必须具有某种机制,以便在运行时能判断对象的类型,从而调用恰当的方法。也就是说,编译器一直不知道对象的类型,但是方法调用机制能找到正确的方法体,并加以调用。
Java中出了static方法和final方法(private方法属于final方法)之外,其他所有的方法都是后期绑定。
只有普通方法的调用可以是多态的。
8.3 构造器和多态
构造器实际上是static方法,只不过该static声明是隐式的。
8.3.1 构造器的调用顺序
构造器的调用顺序是很重要的。当进行继承时,我们已经知道基类的一切,并且可以访问基类中任何声明为public和protected的成员。这意味着在导出类中,必须假定基类的所有成员都是有效的。一种标准的方法时,构造动作一经发生,那么对象所有部分的全体成员都会得到构建。然而,在构造器内部,我们必须确保所要使用的成员都已经构建完毕。为确保这一目的,唯一的办法就是首先调用基类构造器。那么在进入导出类构造器时,在基类中可供我们访问的成员都已经得到初始化。
is-a 基类和导出类有完全相同的接口(方法)
is-like-a导出类有一些扩展的方法。
将一个方法调用同一个方法主体关联起来被称作绑定。
若在程序执行前进行绑定(如果有的话,由编译器和连接程序实现),叫做前期绑定。前期绑定是面向过程的语言中不需要选择就默认的绑定方式。例如,C只有一种方法调用,那就是前期绑定。
后期绑定的含义就是在运行时根据对象的类型进行绑定。如果一种语言想实现后期绑定,就必须具有某种机制,以便在运行时能判断对象的类型,从而调用恰当的方法。也就是说,编译器一直不知道对象的类型,但是方法调用机制能找到正确的方法体,并加以调用。
Java中出了static方法和final方法(private方法属于final方法)之外,其他所有的方法都是后期绑定。
只有普通方法的调用可以是多态的。
8.3 构造器和多态
构造器实际上是static方法,只不过该static声明是隐式的。
8.3.1 构造器的调用顺序
构造器的调用顺序是很重要的。当进行继承时,我们已经知道基类的一切,并且可以访问基类中任何声明为public和protected的成员。这意味着在导出类中,必须假定基类的所有成员都是有效的。一种标准的方法时,构造动作一经发生,那么对象所有部分的全体成员都会得到构建。然而,在构造器内部,我们必须确保所要使用的成员都已经构建完毕。为确保这一目的,唯一的办法就是首先调用基类构造器。那么在进入导出类构造器时,在基类中可供我们访问的成员都已经得到初始化。
is-a 基类和导出类有完全相同的接口(方法)
is-like-a导出类有一些扩展的方法。
相关文章推荐
- 《Thinkinginjava》第8章-多态
- [think in java] 第8章 多态
- [学习笔记][Java编程思想]第8章:多态
- 《JAVA编程思想》学习笔记——第八章 多态
- 《Java编程思想》之多态(面向对象程序语言的第三基本特征)
- 8多态-Java编程思想
- Thinking in Java 4th - 第8章 多态
- 《Java编程思想》之多态(面向对象程序语言的第三基本特征)
- 学习笔记之深入浅出MFC 第8章 C++重要性质----虚拟函数与多态(Polymorphism)
- Java编程思想第四版第8章练习
- 《Java编程思想》之多态(面向对象程序语言的第三基本特征)
- Java编程思想学习(六) 多态
- Java编程思想:第8章 多态
- java编程思想学习-第8章多态
- 第8章 多态
- Java编程思想——多态
- 《Java编程思想》学习笔记:多态
- 《JAVA编程思想》第四版学习 需要我记住的something--多态
- 重温《JAVA编程思想》----2017.1.12 多态与接口(完结版)
- [think in java] 第8章 多态