慕沐1990658
2018-08-12 20:38
这道题不用多态的话是 Chinese p=new Chinese;
用多态的话是 Person p=new Chinese;
表面看上去结果并没有什么不同,这两个的区别在哪里
在这里是没什么区别的。
有时候,你只有到运行时才知道要处理的对象是哪一种子类。
比如设计一个学生类,再设计几个子类,大学生、高中生、初中生。
然后你有一个方法叫打分,方法的参数如果是学生对象,那写一个方法就够了,不管实际传的是哪个子类的对象都能执行。但是没有多态,你就得写三个方法,每个方法的参数定义为一个子类。更要命的是如果以后又增加了学生类别,你还得改代码写新方法。
多态是可以模拟现实生活的体现。就好像现实里的例子,火车站的一个普通售票窗口规定,谁都可以去排队买票,但实际上却可以因为买票人的身份不同,军人、学生、儿童、成人等,有不同的售价,这样的区别对待并不需要为每种人单开一个窗口才能做到,一个窗口就行,只要是“人”,都可以去排队。
用程序来实现这个流程时也一样,人就是父类,而军人、学生等,就是子类,只需要一个售票方法就够了,参数是人类的对象,这就是多态的作用。
虽然能看懂2楼讲的,但是通过楼主举的例子里并不能理解多态
言简意赅
说的好有道理
Java入门第二季 升级版
530646 学习 · 6091 问题
相似问题