首页编程java编程java为什么要使用多态 在java中为什么要多态

java为什么要使用多态 在java中为什么要多态

编程之家2023-10-1292次浏览

各位老铁们,大家好,今天由我来为大家分享java为什么要使用多态,以及在java中为什么要多态的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

java为什么要使用多态 在java中为什么要多态

JAVA为什么说抽象类是实现多态的一种途径。

其实这个问题我是这样理解的。

首先我来给你举个例子:一个抽象的乐器类abstract Instrument.它里面有一个抽象的方法abstract void play();(提醒一下,没有方法体)。

然后有其它的几个不同的乐器(比如Wind、Percussion、Stringed)来继承了前面的乐器抽象类,你应该知道,继承一般要重写基类的方法并实现,所以Wind、Percussion、Stringed都需要去重写play方法。

java为什么要使用多态 在java中为什么要多态

比如Wind重写后是这样的public void paly(){System.out.println("这是Wind的play().")}。Percussion重写后是这样的public void paly(){System.out.println("这是Percussion的play().")}。Stringed重写后是这样的public void paly(){System.out.println("这是Stringed的play().")}。

你实例化类Wind、Percussion、Stringed的对象,它们的引用分别为W,P,S。

此时你这样调用W.play();P.play();S.play();

java为什么要使用多态 在java中为什么要多态

出来的结果分别是:这是Wind的play().这是Percussion的play().这是Stringed的play().

你看,这样就实现了多态。所以说抽象类是实现多态的一种途径。我就是这样理解的。

我怎么感觉在java中多态没什么用呢。我举个例子。

多态给我们带来的好处,可以归纳为如下5点:

1.可替换性(substitutability)。多态对已存在代码具有可替换性。例如,多态对圆Circle类工作,对其他任何圆形几何体,如圆环,也同样工作。如图8.1所示。

(点击查看大图)图8.1可替换性

2.可扩充性(extensibility)。多态对代码具有可扩充性。增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运行和操作。实际上新加子类更容易获得多态功能。例如,在实现了圆锥、半圆锥以及半球体的多态基础上,很容易增添球体类的多态性。如图8.2所示。

(点击查看大图)图8.2可扩充性

3.接口性(interface-ability)。多态是超类通过方法签名,向子类提供了一个共同接口,由子类来完善或者覆盖它而实现的。如图8.3所示。图中超类Shape规定了两个实现多态的接口方法,computeArea()以及computeVolume()。子类,如Circle和Sphere为了实现多态,完善或者覆盖这两个接口方法。

图8.3多态接口性

4.灵活性(flexibility)。它在应用中体现了灵活多样的操作,提高了使用效率。

5.简化性(simplicity)。多态简化对应用软件的代码编写和修改过程,尤其在处理大量对象的运算和操作时,这个特点尤为突出和重要。

值得注意的是,多态并不能够解决提高执行速度的问题,因为它基于动态装载和地址引用,或称动态绑定。但在Java中,除了final类和一定条件下的final方法外,所有方法都由JVM在运行期间进行动态绑定。

在java中为什么要多态

简单的说多态就是实现使用同样的方法做不同的事情,这个情况在现实广泛存在,比如使用彩色打印机可以打印出彩色图像,使用单色打印机只能打印出单色的东西。

而计算机程序就是为了解决现实的问题而存在的,它要能将现实中出现的问题还原到计算机中并加工处理。

多态是继承/方法覆盖/方法重载的结合

有了多态,程序可以实现动态绑定。

其它的理论知识就不多说了,随变“狗”一下就出来一大片,希望对你有用。

java的多态怎么理解啊,多态有什么用途。

多态有编译时多态和运行时多态。

第一个是通过方法重载实现;第二个是通过方法覆盖实现(子类覆盖父类方法)。

第一种就是我们调用方法是不用区分参数类型,程序会自动执行相应方法,如:加法运算,可以使int相加,可以是double相加,都是同一个方法名。

第二种就是动态绑定,使用父类引用指向子类对象,再调用某一父类中的方法时,不同子类会表现出不同结果。这样的作用就是扩展性极好,玩过网游的话应该知道游戏中有不同的角色,它们都有一个父类,它们做相同动作时表现出来的效果就会不一样,比如跑,魔法师的跑跟战士的跑就不会一样,这就是俩者都覆盖了父类中的跑方法,各自有自己的现实,表现出来多态。如果有一天你想再加个角色,只用再写一个类继承该父类,覆盖其中的跑方法就行了,其他代码不用怎么改,所以可维护性也很好。

这一个小的程序或许你体会不到多态的强度作用。其实说到多态就是面向接口编程,它不和具体类尽心挂钩了

比如你没用多态的话,

你没实例化一个对象就要new一下,那假如你那天改变了需求了呢?那是不是又要改里面的?这样不好,所以你可以通过多态,把需要相似的给提出来,然后继承它这样以后需要扩展你仅仅只是继承而已。这样就很简单。

这个需要多看代码才可以更深刻理解。

有问题在讨论。

OK,关于java为什么要使用多态和在java中为什么要多态的内容到此结束了,希望对大家有所帮助。

java什么是批处理(什么是批处理操作系统)工商网上年检(工商网上年检申报时间过期罚款)