java为什么使用多态性(在java中为什么要多态)
其实java为什么使用多态性的问题并不复杂,但是又很多的朋友都不太了解在java中为什么要多态,因此呢,今天小编就来为大家分享java为什么使用多态性的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
在java中为什么要多态
简单的说多态就是实现使用同样的方法做不同的事情,这个情况在现实广泛存在,比如使用彩色打印机可以打印出彩色图像,使用单色打印机只能打印出单色的东西。
而计算机程序就是为了解决现实的问题而存在的,它要能将现实中出现的问题还原到计算机中并加工处理。
多态是继承/方法覆盖/方法重载的结合
有了多态,程序可以实现动态绑定。
其它的理论知识就不多说了,随变“狗”一下就出来一大片,希望对你有用。
java的多态怎么理解啊,多态有什么用途。
多态有编译时多态和运行时多态。
第一个是通过方法重载实现;第二个是通过方法覆盖实现(子类覆盖父类方法)。
第一种就是我们调用方法是不用区分参数类型,程序会自动执行相应方法,如:加法运算,可以使int相加,可以是double相加,都是同一个方法名。
第二种就是动态绑定,使用父类引用指向子类对象,再调用某一父类中的方法时,不同子类会表现出不同结果。这样的作用就是扩展性极好,玩过网游的话应该知道游戏中有不同的角色,它们都有一个父类,它们做相同动作时表现出来的效果就会不一样,比如跑,魔法师的跑跟战士的跑就不会一样,这就是俩者都覆盖了父类中的跑方法,各自有自己的现实,表现出来多态。如果有一天你想再加个角色,只用再写一个类继承该父类,覆盖其中的跑方法就行了,其他代码不用怎么改,所以可维护性也很好。
这一个小的程序或许你体会不到多态的强度作用。其实说到多态就是面向接口编程,它不和具体类尽心挂钩了
比如你没用多态的话,
你没实例化一个对象就要new一下,那假如你那天改变了需求了呢?那是不是又要改里面的?这样不好,所以你可以通过多态,把需要相似的给提出来,然后继承它这样以后需要扩展你仅仅只是继承而已。这样就很简单。
这个需要多看代码才可以更深刻理解。
有问题在讨论。
java中什么是多态性它具有什么优点
Java是面向对象的语言,多态性是面向对象程序设计代码重用的一个最强大机制,动态性的概念也可以被说成“一个接口,多个方法”。Java实现运行时多态性的基础是动态方法调度,它是一种在运行时而不是在编译期调用重载方法的机制,主要体现在继承和接口实现两方面,详见例子:
继承实现多态例如:
class A{
method(){
System.out.println("a");}
}
class B extends A{
method(){
System.out.println("b");}}
class test{
main(){
A test= new B();
test.method();//执行以后输出的是:b。解释就是:父类引用(A)指向子类对象(B),这个引用调用的是子类的方法,而不是父类A的方法;
}}
继承实现多态其实原理类似:
interface A{
method();}
class B implements A{
method(){
System.out.println();}}
class test{
main(){
A test= new B();
test.method();//此处便会使用java的多态,B实现了A,虽然=前面是A test,但实际上生成的确是B的对象,所以调用它的方法,同继承中的父类对象指向子类对象原理相同,只是此处为继承;
}}
多态的好处非常明显啊,有人总结:
1.可替换性。多态对已存在的代码具有可替换性。
2.可扩充性。多态对代码具有可扩充性。增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运行和操作。实际上新加子类更容易获得多态功能。
3.接口性。多态是超类通过方法签名,向子类提供了一个共同接口,由子类来完善或者覆盖它而实现的。
4.灵活性。它在应用中体现了灵活多样的操作,提高了使用效率。
5.简化性。多态简化了对应用软件的代码编写和修改过程,尤其在处理大量对象的运算和操作时,这个特点尤为突出和重要。值得注意的是,多态并不能够解决提高执行速度的问题,因为它基于动态装载和地址引用,或称动态绑定。
在Java程序中,多态性带给我们的好处是什么
1.可替换性。多态对已存在的代码具有可替换性。(不用修改当前代码,只要提供新的方法就可以直接调用)
2.可扩充性。多态对代码具有可扩充性。增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运行和操作。实际上新加子类更容易获得多态功能。
3.接口性。多态是超类通过方法签名,向子类提供了一个共同接口,由子类来完善或者覆盖它而实现的。
4.灵活性。它在应用中体现了灵活多样的操作,提高了使用效率。
5.简化性。多态简化了对应用软件的代码编写和修改过程,尤其在处理大量对象的运算和操作时,这个特点尤为突出和重要。值得注意的是,多态并不能够解决提高执行速度的问题,因为它基于动态装载和地址引用,或称动态绑定。
关于java为什么使用多态性的内容到此结束,希望对大家有所帮助。