发布网友 发布时间: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这个在发字体或者语音是怎么写的、、