多态存在的三个必要条件
继承
重写
父类引用指向子类实例化对象 :Parent p = new Child();
当使用多态方式调用方法时,
首先检查父类中是否有该方法,如果没有,则编译错误;
如果有,再去调用子类的同名方法。记住!!
用子类的构造函数创建父类类型的对象叫做向上转型
Animal a = new Cat(); // 向上转型 ,(先后调用Cat、Animal 的构造函数,继承的是子类的方法,但父类中必须也有该方法,无该方法则无法调用)
Cat c = (Cat)a; // 向下转型,(将a中的变量值赋给c,此时c可以调用父类没有的方法)
虚函数
虚函数的存在是为了多态。
Java 中其实没有虚函数的概念,它的普通函数就相当于 C++ 的虚函数,动态绑定是Java的默认行为。如果 Java 中不希望某个函数具有虚函数特性,可以加上 final 关键字变成非虚函数。
多态的实现方式
方式一:重写:
方式二:接口
方式三:抽象类和抽象方法
最常用的实现多态的方法:使用对象的向上转型来初始化对象。[1]
本章学习到此结束,若想了解其他java知识,欢迎访问java学习之1:总纲。
2019.4.21更新:[1]
网友评论