java高级学习之3:多态

多态存在的三个必要条件

继承

重写

父类引用指向子类实例化对象 :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]

你可能感兴趣的:(java高级学习之3:多态)