为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

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

正在回答

4 回答

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

16 回复 有任何疑惑可以回复我~
#1

慕沐1990658 提问者

非常感谢!
2018-08-14 回复 有任何疑惑可以回复我~
#2

qq_慕瓜9564016

虽然能看懂但还是不太理解,既然分类了那就是每类的具体实现方法又有区别,就要重写方法,最后用到的还是子类里的方法,那和子类引用本类到底有什么区别
2019-10-06 回复 有任何疑惑可以回复我~
#3

qq_慕丝3157114 回复 qq_慕瓜9564016

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

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

2 回复 有任何疑惑可以回复我~
#1

学霸985

我也听得迷迷糊糊的,,
2019-02-20 回复 有任何疑惑可以回复我~

言简意赅

0 回复 有任何疑惑可以回复我~

说的好有道理

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信