首页 热点专区 义务教育 高等教育 出国留学 考研考公

JAVA为什么要重写系统已有的方法?居然要重写还不如自定义一个方法

发布网友 发布时间:2022-04-27 07:04

我来回答

1个回答

热心网友 时间:2023-09-13 03:03

我不说什么特别难懂的、举个很简单例子
lz上过QQ吧?
咱们上Q的时候,不是可以发图片、字体、语音、等等?
如果让你写这个功能,lz你会怎么写呢?
写一个发图片的方法、写一个发字体的方法、写一个发语音的方法?
这样?
这样写,最起码我觉得有2个很笨的缺点、、
第一,要写的方法多了很多、、
第二,对象在调用方法的时候,要知道调用的是哪个方法、、
是调用发字体、还是发语音、还是发图片等等?
这样不如弄一个父类,在父类中定义一个show()方法。然后子类继承父类。(子类就是指那些发字体的类、发语音的类、发图片的类)
然后各个子类重写父类的show方法、要发字体的就写发字体,发语音的就发语音。。。。。
然后,你就用一个父类的引用指向子类对象,如

Father
a
=
new
Son();
然后调用它的show方法
a.show();
假设这个
new
Son

new
的是发字体的,
那它调用show方法的时候,自然是调用自己的show方法、、也就是发字体的方法
假设这个
new
Son,
new
的是发图片的,那它调用的就是发图片的方法、、
如此类推
lz
不觉得这样很方便吗?
只写一个show
方法,
不同的对象去调用有不同的效果。
也解决了我上面说的那2个很笨的缺点。
优点:
1、不用写很多方法,只写一个show方法就可以了、
2、对象调用方法的时候只要调用show方法就可以了,虽然调用的是同一个方法,但是却因为不同的对象调用而产生不同的效果、
其实说那么多,我说的也像二楼说的,说的也是多态性、、
上面只是举个例子,当然我是不知道QQ这个在发字体或者语音是怎么写的、、

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com