首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

ThinkingInJava札记-多形性(第七章)

2012-12-22 
ThinkingInJava笔记-多形性(第七章)1.多形性问题也叫做动态绑定,推迟绑定或者运行期绑定。JAVA中所有的方法

ThinkingInJava笔记-多形性(第七章)

1.多形性问题也叫做动态绑定,推迟绑定或者运行期绑定。

JAVA中所有的方法都采用后期绑定技术,除非一个方法已被声明为final类型(声明为final会告诉编译器不需要动态绑定,这样会生成更高效的代码)。

ThinkingInJava札记-多形性(第七章)

上溯造型可以用下面这个语句表现出来:

Shape s = new Circle();

在这里我们创建了一个Circle对象,并将结果句柄立即赋给Shape(应为继承关系,Circle是Shape的一种)。

当我们调用其中的一个方法:

s.draw();

大家或许会认为调用了Shape的draw方法,因为毕竟是一个Shape句柄。但此时调用的是Circle的draw方法,因为后期绑定已经介入。

有了java的动态绑定,才有其实现的工厂方法模式。对于这一点内容需要认真分析,我们平时看来理所当然的东西,其实是一动态绑定为基础的。

?

2.构建起调用顺序

java对象在调用构造方法:

1)调用基类,即父类的构造方法。这个步骤会不断重复下去,例如一个类Test2继承自Test1,Test1继承自Object,那么当Test2的构造方法执行时,会向上调用Test1的构造方法,Test1的构造方法继续向上调用Object的构造方法。

2)按声明顺序调用成员初始化模块

3)调用衍生构造器主题

?

3.类型检查

在java中所有造型都会自动得到检查,所以即使只是进行一次括弧造型,进入运行期后,仍回进行检查,以保证其是我们希望的造型。如果不是,就会得到一个ClassCastException(类造型违例)。在运行期对类型进行检查的行为叫做“运行期类型标识”(RTTI)。

热点排行