Java 中多态的实现原理
一. 什么是多态
多态是面向对象编程里面的概念,一个接口的多种不同的实现方式,即为多态。
这里的接口不应理解得太死板,比如在 Java 里面,继承一个类和实现一个接口本质上都是一种继承行为,因此都可以理解为多态的体现。
从静态和动态的角度进行划分,多态可以分为 编译时多态 和 运行时多态。
编译时多态是静态的,主要是指方法的重载,它是根据参数列表的不同来区分不同的方法,编译之后会变成两个不同的方法。
而运行时多态是动态的,是通过动态绑定来实现的,也就是大家通常所说的多态性,本篇博客主要讨论运行时多态。
#二. 多态的特点
多态的特点为:只有在运行的时候才知道引用指向的是哪个类的实例对象,以及引用调用的方法指向的是哪个类中实现的方法。
多态通常有两种实现方法:
- 子类继承父类(extends)
- 类实现接口(implements)
多态核心之处就在于对父类方法的重写或对接口方法的实现,以此在运行时实现不同的执行效果。
三. 多态的代码实现
1. 子类继承父类
第一步:定义父类
public class Father {
public void dealHouse(){
System.out.println("父亲处置房产");
}
}
第二步:定义子类(大儿子和小儿子)
//大儿子
public class SonA extends Father {
@Override
public void dealHouse() {
System