多态是在继承、实现情况下的一种现象,表现为:对象多态、行为多态。
多态的好处:
在多态形式下,右边的代码是解耦合的,更便于扩展和维护。
定义方法时,使用父类类型作为形参,可以接收一切子类对象,扩展行更强,更便利。
虽然多态形式下有一些好处,但是也有一些弊端。在多态形式下,不能调用子类特有的方法,比如在Teacher类中多了一个teach方法,在Student类中多了一个study方法,这两个方法在多态形式下是不能直接调用的。
多态形式下不能直接调用子类特有方法,但是转型后是可以调用的。这里所说的转型就是把父类变量转换为子类类型。格式如下:
//如果p接收的是子类对象
if(父类变量 instanceof 子类){
//则可以将p转换为子类类型
子类 变量名 = (子类)父类变量;
}