Java有三大特点:继承、封装、多态。今天,在这里讲一讲Java中的多态。
首先,Java的多态是建立在继承的基础上的。父类引用可以指向本类对象,其实,父类引用也可以指向子类的对象,这就是多态。下面我们看看具体的例子:
大家都知道交通工具具有运输的功能,但不同的交通工具其运输的方式不一样,例如,汽车是在陆地上运输的,飞机是在天上运输的,我们先新建一个交通工具类Vehicle,在类中声明方法transport(),如下:
再分别新建类Bus和类Plane继承Vehicle,在类中重写transport()
若子类中声明了父类中没有的方法,则不用通过父类的引用来调用。如:在Plane中声明speed()方法,
调用会出错
下面,我们说一说多态中的引用类型转换。引用类型转换有两种:向上类型转换(小类型到大类型,自动类型转换)和向下类型转换(大类型到小类型,强制类型转换)。强制类型转换会带来安全性的问题,Java提供instanceof运算符,来避免类型转换的安全性问题。