运行时多态实现的三个条件
1.子类继承
2.子类对父类方法的重写
3.子类对象的引用指向父类
多态的理解:
当多个子类继承了同一个父类,每个子类都能对父类方法进行重写,而重写的具体作用则视类而定
子类对象的引用指向父类,对象方法的调用则视方法重写与否而具体调用
如果子类与父类具有共同方法,且方法未被重写,则调用父类方法
而如果子类重写了父类方法,则调用子类方法
如果调用只有父类具有的方法,则没有问题。
如果调用仅子类具有的方法,则程序报错。
多态性的具体应用
这里定义了一个Person父类,父类具有eat,sleep,play方法
Student类继承了Person类,并重写了eat,sleep方法
老师类也继承了Person类,但是只重写了eat方法
在测试类进行运行得到的结果,可以很直观的看到Teacher类没有重写sleep方法而调用了父类的sleep方法,印证了多态性。
当多个类具有相似的方法,而具体方法不一样时,多态性的作用得到体现,子类继承父类,子类对象的引用指向父类,重写方法的区别便是不同类实现的不一样之处。