多态
概念:相同的行为,不同的实现。
分类:1.静态多态,编译期,即已知方法,执行效果。2.动态多态,编译器未知,运行期根据绑定对象的不同,有不同的效果。
实现:1.静态多态,使用重载实现。2.动态多态,使用动态绑定和方法重写实现。
在java中使用动态绑定和重写机制来实现多态,需要掌握三个基础技术概念:
1.向上转型技术:一个父类的引用变量可以指向不同的子类对象,或者说一个子对象可以被当作一个父类类型。
2.instanceof关键字:instanceof关键字用于判断运行时对象的真正类型。
3.动态绑定技术:运行时根据父类引用变量所指对象的实际类型执行相应的子类方法。
向上转型和向下转型:当从低精度数据类型向高精度数据类型转换时实行自动转换,这种类型转换技术称为向上转型;当从高精度数据类型向低精度数据类型转换时,需要使用强制类型转换符,这种类型转换技术称为向下转型。
对于引用数据类型,这种转换技术依然适用,在父类和子类的继承层次关系中,沿着子类向父类向上转型时自动转换,而从父类向子类必须使用强制类型转换才能实现向下转型。