java中多态的机制有哪几种?内容详解

上次已经为大家介绍过java中多态的意义是什么的主要内容了。今天为大家解析一下java中多态的机制,会通过实际的代码来为大家解析,一起来了解一下吧。

首先说一些,多态的机制

本质上多态分两种:

1. 编译时多态(又称静态多态)

2. 运行时多态(又称动态多态)

重载(overload)就是编译时多态的一个例子,编译时多态在编译时就已经确定,运行时运行的时候调用的是确定的方法。

我们通常所说的多态指的都是运行时多态,也就是编译时不确定究竟调用哪个具体方法,一直延迟到运行时才能确定。这也是为什么有时候多态方法又被称为延迟方法的原因。

接下来简述一下,运行时多态(以下简称多态)的机制。

多态通常有两种实现方法:

1. 子类继承父类(extends)

2. 类实现接口(implements)

无论是哪种方法,其核心之处就在于对父类方法的改写或对接口方法的实现,以取得在运行时不同的执行效果。要使用多态,在声明对象时就应该遵循一条法则:声明的总是父类类型或接口类型,创建的是实际类型。举例来说:

在定义方法参数时也通常总是应该优先使用父类类型或接口类型,例如某方法应该写成如下代码:

public void doSomething(List list);

而不是如下代码:

public void doSomething(ArrayList list);

这样声明最大的好处在于结构的灵活性:假如某一天ArrayList的特性无法满足要求,希望能够用LinkedList来代替它,那么只需要在对象创建的地方把new ArrayList()改为new LinkedList即可,其它代码一概不用改动。

同时需要注意的是,虚拟机会在执行程序时动态调用实际类的方法,它会通过一种名为动态绑定(又称延迟绑定)的机制自动实现,这个过程对程序员来说是透明的。

总体上来说,java多态的机制实现原理还是很容易理解的,可能需要花时间多了解一下,但整体上还是很简洁的。想要了解更多java基础知识,敬请关注奇Q工具网。

推荐阅读:

java多态的实现方式是怎样的?详细解析

java多态机制的原则是什么?实例展示

java多态是什么意思?实例分享