前言
前面讲了面向对象的两个特性,封装和继承。本文将面向对象的最后一个特性多态,而多态是在继承的基础上存在的。
Java的引用变量有两个类型:一个是编译时的类型,另一个是运行时的类型。编译时的类型由声明变量时所使用的类型决定,运行时类型由实际赋给变量的对象决定。如果编译时类型和运行时类型不一致,就会出现多态。
至于什么是编译时类型和运行时类型,请继续往下看。
一.多态性
先来看一段程序:
class Bird{
public void myInfo(){
System.out.println("我是鸟");
}
}
class Ostrich extends Bird{
public void myInfo(){
System.out.println("我是鸵鸟");
}
public static void main(String[] args){
Bird bird = new