1. 多态
方法或对象具有多种形态,是OOP(面向对象的编程)的三大特征,
是建立在封装和继承基础之上。
2. 多态具体体现
- 方法多态
(1)重载体现多态
(2)重写体现多态
- 对象
(1)对象的编译类型和运行类型可以不一致,
编译类型在定义时没救确定了不能变化。
(2)对象的运行类型是可以变化的,
可以通过getClass()来查看运行类型。
3. 代码示例
package Test;
public class test01 {
public static void main(String[] args) {
AAA obj = new BBB();
AAA b1 = obj;
System.out.println("obj的运行类型=" + obj.getClass());
obj = new CCC();
System.out.println("obj的运行类型=" + obj.getClass());
obj = b1;
System.out.println("obj的运行类型=" + obj.getClass());
}
}
class AAA{
}
class BBB extends AAA{
}
class CCC extends BBB{
}
4.结果
5.原因
AAA obj = new BBB();
一开始obj指向的是对象BBB,所以第一条 System.out.println ()会输出BBB
AAA b1 = obj;
obj = new CCC()
obj = b1;