多态的具体体现:
1、方法的多态:重载和重写
2、对象的多态:
(1)一个对象的编译类型和运行时类型可以不一致
(2)编译类型在定义对象时就确定了,不能改变
(3)运行时类型是可以变化的
(4)编译时类型看定义时 “=”左边,运行时类型看“=”右边
3、属性没有重写,属性的值看编译类型
举例:
动态绑定机制:
1、当调用对象方法的时候,该方法会和该对象运行时类型绑定
2、当调用对象属性时,没有动态绑定机制,哪里声明,哪里使用
举例:
结果为:
结果为:
多态的向上转型:
1、本质:父类的引用指向子类的对象
多态的向下转型:
1、语法:子类类型 引用名 = (子类类型) 父类引用
2、只能强转父类的引用,不能强转父类的对象
3、要求父类的引用必须指向的是当前目标类型的对象
4、可以调用子类类型中所有的成员
intanceOf比较操作符:用于判断对象的运行时类型是否为XX类型或者XX类型的子类型
举例:
结果为: