广义上的理解:子类对象的多态性,方法的重写;方法的重载;
狭义上的理解: 子类的对象的多态性。
格式:Object obj= new String();
父类的应用指向子类的对象。
多态的好处
减少大量的重载的方法的定义;开闭原则
举例:public boolean equals(object obj)
多态存在的三个必要条件
- 继承或实现:在多态中必须存在有继承或实现关系的子类和父类
- 方法的重写:子类对父类中的某些方法进行重新定义(重写,使用关键字@Override注解进行重写)
- 基类引用指向派生类对象,即父类引用指向子类对象,父类类型:指子类对象继承的父类类型,或实现的父接口类型
多态的特点:
编译运行看左边
多态的向上转型:
原理:实际上就是创建一个子类对象,将其当作父类对象来使用。
语法格式:父类类型 对象名 = new 子类类型()
优缺点:
【优点】:让代码实现更简单灵活,这个从上面的三个不同场景就可以看得出来。
【缺点】:不能调用到子类特有的方法。
多态的向下转型:
这种类型的转化不太安全,如果没有特殊需求,不建议使用