前面已经总结过了封装,今天来总结一下多态。
多态存在的条件
1、类的继承
提到多态就必须要讲一下继承的概念,当一个类继承于另一个类时,该类则是前一个类的子类,而被继承的类就称为这个子类的父类。子类继承父类可以得到父类的全部属性和方法(构造方法除外),即子类对象可以调用父类的未被重写的所有方法。而当没有写出该类继承于哪一个类时,默认继承Object类,即Object类是所有类的父类。
2、方法的重写
指的是子类重写父类的方法,当父类方法不能满足子类的实现时,需要重写父类的方法。
3、父类引用指向子类对象
下面我们通过实际代码进行理解,我们首先定义一个Animal类,再定义一个Dog类和Cat类继承Animal类。
1 | public class Animal { |
1 | public class Dog extends Animal{ |
1 | public class Cat extends Animal{ |
然后我们通过Test类测试多态的效果。
1 | public class Test { |
输出结果
1 | 叫了一声! |
总结
这样就简单实现了多态的效果,因为Dog类和Cat类都继承了Animal类,而各自要实现的shout()方法是不同的效果,通过父类引用指向子类对象,就很好的解决了这个问题。在实际开发中,经常需要用到多态。