首页 理论教育 Java程序设计:参数传递中的多态应用

Java程序设计:参数传递中的多态应用

时间:2023-11-01 理论教育 版权反馈
【摘要】:设计用例演示参数传递中的多态效果。图4-23在HisTriangle6类中重写父类equals方法在本例中,Object类是基类,因为有了多态,父类引用可以指向子类对象,因此,开发中常常可以设定一个Object类型的参数来接收任意类型的子类对象。如果没有多态性,那么类中就需要为equals方法根据不同参数列表写若干个重载方法。图4-24验证HisTriangle6类的equals方法关注程序第7行和第8行中equals方法中分别传入了不同类型的实参,这是多态性的体现。

Java程序设计:参数传递中的多态应用

在程序His Triangle5Test.java中第5行,为什么不一开始就将变量的声明类型和对象的实际类型保持一致,例如改成语句“His Triangle5 t=new His Triangle5(6,8,10);”?如果变量声明类型和实际运行对象类型保持一致,就不会出现多态效果。

需要强调的是,多态是面向对象程序的三大特征之一,多态的出现可以方便程序的通用设计。例如在方法声明中,如果将参数类型定义为父类型,则该参数可以接收任何子类的值。

【例4-7】

设计用例演示参数传递中的多态效果。

在JDK类库中查看java.lang.Object类源代码,找到equals方法实现,如图4-22所示。

图4-22 Object类equals方法实现

Object类中equals方法的实现是检测两个引用变量的地址值是否相同,而自定义类中,如果需要提供判断两个对象是否相等的功能,需要重写继承自Object类的该方法。复制cn.linaw.chapter4.demo01包下His Triangle5类,在同一个包下粘贴,并更名为His Triangle6。打开His Triangle6.java文件,重写equals方法,两个His Triangle6对象相等的依据是判断它们的面积是否相等,如图4-23所示。(www.xing528.com)

图4-23 在HisTriangle6类中重写父类equals方法

在本例中,Object类是基类,因为有了多态,父类引用可以指向子类对象,因此,开发中常常可以设定一个Object类型的参数来接收任意类型的子类对象。如果没有多态性,那么类中就需要为equals方法根据不同参数列表写若干个重载方法。

下面通过一个测试类His Triangle6Test来验证His Triangle6类的equals方法,如图4-24所示。

图4-24 验证HisTriangle6类的equals方法

关注程序第7行和第8行中equals方法中分别传入了不同类型的实参,这是多态性的体现。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈