面向对象有三大特征,继承,封装,多态,多态是建立在封装和继承上的。
多态的具体体现
1.方法的多态(相关内容可以参考这篇文章http://t.csdn.cn/30hNR)
(1)方法的重载
(2)方法的重写
2 对象的多态
(1)对象的编译类型和运行类型可以不一致,编译类型在定义时,就已经确定不会再发生变化。
(2)对象的运行类型可以变化的,能通过getclass()来查看。
(3)编译类型看等号的左边,运行类型看等号的右边
下面是代码
public class Static {
public static void main(String[] args) {
A a = new B();//向上转型 a的编译类型是 A,运行类型是B
A a1 = new A();
a = a1;//a的编译类型是A,此时a的运行类型也是是A
}
}
class A{
}
class B extends A{
}