请问用多态和不用多态有什么区别啊

来源:11-2 代码实现

慕沐1990658

2018-08-12 20:38

这道题不用多态的话是 Chinese p=new Chinese;

用多态的话是  Person p=new Chinese;

表面看上去结果并没有什么不同,这两个的区别在哪里

写回答 关注

4回答

  • 望水瘦
    2018-08-12 21:33:46
    已采纳

    在这里是没什么区别的。
                  有时候,你只有到运行时才知道要处理的对象是哪一种子类。
    比如设计一个学生类,再设计几个子类,大学生、高中生、初中生。
    然后你有一个方法叫打分,方法的参数如果是学生对象,那写一个方法就够了,不管实际传的是哪个子类的对象都能执行。但是没有多态,你就得写三个方法,每个方法的参数定义为一个子类。更要命的是如果以后又增加了学生类别,你还得改代码写新方法。
                多态是可以模拟现实生活的体现。就好像现实里的例子,火车站的一个普通售票窗口规定,谁都可以去排队买票,但实际上却可以因为买票人的身份不同,军人、学生、儿童、成人等,有不同的售价,这样的区别对待并不需要为每种人单开一个窗口才能做到,一个窗口就行,只要是“人”,都可以去排队。
    用程序来实现这个流程时也一样,人就是父类,而军人、学生等,就是子类,只需要一个售票方法就够了,参数是人类的对象,这就是多态的作用。

    qq_慕丝3... 回复qq_慕瓜9...

    假如大学生,高中生都是全票,就可以直接用父类的方法,初中生是半票,就只需要在初中生子类里重写此方法,如果不用多态,那么每个子类都需要重写买票方法。把相同的买票方法,只用一个方法放进父类中,这大大节省了代码。

    2020-02-17 14:27:19

    共 3 条回复 >

  • Raintolee
    2018-09-16 13:13:53

    虽然能看懂2楼讲的,但是通过楼主举的例子里并不能理解多态

    学霸985

    我也听得迷迷糊糊的,,

    2019-02-20 20:46:29

    共 1 条回复 >

  • 尤克里里丶
    2018-08-22 13:48:10

    言简意赅

  • 慕用7104560
    2018-08-19 14:24:25

    说的好有道理

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530646 学习 · 6091 问题

查看课程

相似问题