七叶笔记 » java编程 » java中实现多态的方式

java中实现多态的方式

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教程

相关文章