首页 > 代码库 > 第九篇9.1章

第九篇9.1章

1.多态

  什么是多态:

  一个对象有多重形式的能力

  一个类的子类可以定义它们唯一行为,同时共享父类的某些相同特征

 

2.理解多态

  1.(静态多态)对象的不同的方法可以用相同的一个方法名,也就是重载

 

  2.(动态多态)同一个对象根据不同的消息执行相应的行为,也可以这样认为发送消息给某一个对象,让对象自行选择哪种相应的行为

 

  静态多态:程序编译时,系统就能决定调用哪个方法,所以也称为编译时多态,静态多态实现的方式就是方法重载

 

  动态多态:通过重写和动态绑定的机制来实现

 

  运行中系统才能确定方法所指的对象,所以也称为运行时多态。

  动态多态的实现方式是重写父类中的同名成员方法

3.多态的技术基础

  向上转型技术:(从低精度数据类型向高精度数据类型转换,也就是自转)一个父类的引用变量可以指向不同的子 类对象,或者说一个子对象可以被当做父类类型

 

  向下转型技术:从高精度数据类型向低精度数据类型转换,需要强制转换,也就是强转

 

  在继承关系中,沿着子类向父类向上转型是“自动转换”

 

  instanceof用于判断运行时对象的真正类型

  动态绑定技术:运行时根据父类引用变量所指向对象的实际类型的执行相应的子类方法

 

  将一个方法调用与该方法所在的类关联起来

 

  绑定分为静态绑定和动态绑定或者称为前期绑定和后期绑定

 

  静态绑定:在程序执行前方法已被绑定

第九篇9.1章