java中什么是多态性?它具有什么优点

时间:2021-03-28 21:53:07


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.简化性。多态简化了对应用软件的代码编写和修改过程,尤其在处理大量对象的运算和操作时,这个特点尤为突出和重要。值得注意的是,多态并不能够解决提高执行速度的问题,因为它基于动态装载和地址引用,或称动态绑定。