码迷,mamicode.com
首页 > 其他好文 > 详细

也谈多态,接口,抽象类

时间:2015-01-14 00:43:52      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:

 

新人学JAVA,这部分知识点应该是一个槛(反正我是被槛住好长时间),可能就是因为这几个点会怀疑自己,怀疑自己的智商,怀疑自己的抉择,进而怀疑人生。。。说正题:

 

1.啥叫多态:

  就是多种形态(P话),一个抽象类,由于被多个类继承和重写方法,而产生的各种各样的类,叫做这个抽象类的多态。一个接口,由于被多个类实现和重写方法体,而产生的各种各样的类,叫做这个接口的多态。

 

2.啥叫抽象:

  就是把大象抽出来!

  高大上解释:大者,广也。象者,天地万物之象也。即把普遍存在于天地万物中的现象抽离出来。

  普通解释:把共同点提炼出来。

 

3.啥叫抽象方法?

  把很多方法的共同点提炼出来,形成一个方法。。可是JAVA发现,我擦!除了方法名是一样的,其他都不一样,好吧,抽象方法就只有方法名,连{}都不许有,够抽象了吧。

 

4.啥叫抽象类?这玩意有啥用?啥时候用?

  抽象类就是抽象的类(P话),这个类有一个及以上的抽象方法(没有具体方法体和{}的方法,只有一个方法名),那这个类就叫抽象类,并且必须是抽象类。

  小白:为毛要有抽象方法,没想好咋写,你想完再写不行么?

  大婶:你懂个**!我那是没想好么?只搞个方法名放在那是为了让不同的人可以写不同的实现方法体,这样就起到了一个模版的作用,减少编码量。

  比如:男员工,女员工,gey员工,他们都有吃饭、睡觉、打卡这三个方法,并且方法都一样,都用嘴吃,都躺着睡,都用手指打卡,我就没必要每个人写一个类了,那样真累了。。。搞个通用模版吧,让他们继承(这就是抽象类的最大作用)。

  小白:可是这样不就成普通类的继承了么?为毛要搞抽象类?

  大婶:你没发现他们上厕所的方式不一样么?-o-,所以上厕所这个方法我就写个名字,就不细写了,不写具体的方法就是抽象方法,这个类就是抽象类。于是有:

  吃饭(用嘴);

  睡觉(躺着);

  打卡(用手);

  上厕所();

  当多个类,大部分方法一样,少部分方法不同的时候,我们写一个抽象类,提炼出共同方法写好,不同的方法名字写好,谁继承谁重写,这样减少代码量也便于规范管理(这就是啥时候用抽象类)。

 

5.啥叫接口?这玩意有啥用?啥时候用?

  接口就是把抽象类再抽象!!哇次奥,那就没啥了,是的,里面的方法真的就都是名字,没有方法体了。

  因为他没有任何方法体,也起不到抽象类模版的作用,那为毛还搞他呢?也许他最大的作用就是没有作用。。。

  1.因为他很干净,你可以在他规定的方法内,任意重写。作用体现出来了,接口是个标准化的东西。

  比如一个仓井的类需要一个 “Truemen”的对象,因为仓井需要Truemen很频繁,而且经常更换,就好像我们的程序需要更换数据库一样。。。

  那就要为Truemen下个定义,或者说列几个方法,比如深入(),浅出(),转圈() 三个方法,张三认为是Truemen了,想和仓井对接,那就要先实现这个Truemen这个接口,并且实现里面的所有方法,这样仓井说Truemen.深入() Truemen.深入() Truemen.深入()时才不会报错,才能顺利完成对接,至于张三李四王五他们都这么取实现深入浅出转圈的仓井并不关心。这就是接口的标准化作用。

  2.一个类可以实现多个接口,比抽象类灵活。

  

  

  

 

也谈多态,接口,抽象类

标签:

原文地址:http://www.cnblogs.com/Quenching/p/4222903.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!