问答详情
源自:11-2 代码实现

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

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

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

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

提问者:慕沐1990658 2018-08-12 20:38

个回答

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

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

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

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

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

    言简意赅

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

    说的好有道理