欢迎光临
我们一直在努力

java多态是如何实现的

在面向对象编程(Object-Oriented Programming, OOP)中,多态机制无疑是其最具特色的功能,甚至可以说,不运用多态的编程不能称之为OOP。

java多态是如何实现的插图

本质上多态分两种:

编译时多态(又称静态多态),运行时多态(又称动态多态) (推荐学习:java课程)

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

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

下面简要介绍一下运行时多态(以下简称多态)的机制。

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

子类继承父类(extends)

类实现接口(implements)

无论是哪种方法,其核心之处就在于对父类方法的改写或对接口方法的实现,以取得在运行时不同的执行效果。

要使用多态,在声明对象时就应该遵循一条法则:声明的总是父类类型或接口类型,创建的是实际类型。举例来说,假设我们要创建一个ArrayList对象,声明就应该采用这样的语句:

List list=newArrayList();

而不是

ArrayList list=newArrayList();

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

publicvoid doSomething(List list);

而不是

publicvoid doSomething(ArrayList list);

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

分享本文到
赞(0)
未经允许不得转载:爱分享 » java多态是如何实现的

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

爱分享,生活常用知识教程百科分享、学习、交流平台

爱分享精选好货商城