• 技术文章 >Java >Java基础

    java中实现多态的方式

    王林王林2019-11-11 15:23:31原创3338

    Java中实现多态的方式:

    1、接口实现;

    2、继承父类进行方法重写;

    3、同一个类中进行方法重载。

    多态存在的必要条件:

    1、要有继承;

    2、要有重写;

    3、父类引用指向子类对象。

    多态的好处:

    1、可替换性(substitutability)。

    多态对已存在代码具有可替换性。例如,多态对圆Circle类工作,对其他任何圆形几何体,如圆环,也同样工作。

    2、可扩充性(extensibility)。

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

    3、接口性(interface-ability)。

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

    4、灵活性(flexibility)。

    它在应用中体现了灵活多样的操作,提高了使用效率。

    5、简化性(simplicity)。

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

    多态实例:

    (1)相关类

    class A ...{ 
      public String show(D obj)...{ 
      return ("A and D"); 
      } 
      public String show(A obj)...{ 
      return ("A and A"); 
      } 
    } 
    class B extends A...{ 
      public String show(B obj)...{ 
      return ("B and B"); 
      } 
      public String show(A obj)...{ 
      return ("B and A"); 
      } 
    } 
    class C extends B...{} 
    class D extends B...{}

    (2)问题:以下输出结果是什么?

    A a1 = new A(); 
      A a2 = new B(); 
      B b = new B(); 
      C c = new C(); 
      D d = new D(); 
      System.out.println(a1.show(b)); ① 
      System.out.println(a1.show(c)); ② 
      System.out.println(a1.show(d)); ③ 
      System.out.println(a2.show(b)); ④ 
      System.out.println(a2.show(c)); ⑤ 
      System.out.println(a2.show(d)); ⑥ 
      System.out.println(b.show(b)); ⑦ 
      System.out.println(b.show(c)); ⑧ 
      System.out.println(b.show(d)); ⑨

    (3)答案

    ① A and A
    ② A and A
    ③ A and D
    ④ B and A
    ⑤ B and A
    ⑥ A and D
    ⑦ B and B
    ⑧ B and B
    ⑨ A and D

    推荐教程:java教程

    以上就是java中实现多态的方式的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:java 实现 多态 方式
    上一篇:java中的equals与==的区别 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • java中多态是什么意思?• java的三大特性封装、继承、多态• Java基础:多态的理解与应用• java多态是什么
    1/1

    PHP中文网