现在的位置: 首页 > 综合 > 正文

Java抽象类与接口人性化理解

2013年09月12日 ⁄ 综合 ⁄ 共 1201字 ⁄ 字号 评论关闭

我们知道在java中抽象类与接口的灵活运用大大简化了C++里的多重继承,但却实现了C++里相似的功能,其实接口的运用其实也只是类层次关系中下传的一种表现,我们可以把java中类的层次关系想象想你的一个家族关系

父类Object当然是老祖宗了,

1抽象类(AbstractClass):

抽象类当然是你的祖辈(祖父,爷爷,父亲都有可能)了,而抽象类里的抽象方法就好象是你祖辈们本应该做的事情,而他们却没有能力去做,或者说他们根本不想去做(可能是他们有这个梦想,而却没有这个能力吧),不过好在他们最终的子孙们(当然不已经不再是抽象类了)都是些有能力,有出息的子孙,帮他们完成他们没有完成的事情(实现了抽象方法),如果当哪天有个想叫这些祖辈去做他们正好没有完成的那些事情时候(调用抽象方法),这些祖辈们就会跟你说,啊,这个我没办法完成,我已经让我的儿子负责来做了,你去找我的儿子去吧,那个人也只好找到他的儿子,假如这个儿子没有这个能力话(还是抽象类),他可能又会跟那个人说,这些事情我也完成不了(还有抽象方法),我让我儿子负责去做了,你找他去吧........依此类推,那个人只能一直找下去,直找到那个有能力完成这些事情为止的儿子(已经实现了抽象方法),然后就让这个儿子去那这件事情(调用这个实现的方法),当然了这些祖辈们多多少少还是做了大部分事情的(大部分不是抽象的方法),同时他们也有自己的性格啊,外貌啊,身高啊等等(这些都是属性).....

2接口(Interface):

接口就更加牛了(只有属性,完全没有方法体),都些好吃懒做,完全没有出息的祖辈们(当然他们存在这个世上还是有外貌啊,体重啊,身高啊,爱好啊之类的特征啦....),本来上天给了他们很多事情去做的(接口里的方法),而他们都懒得动手(可能是好吃懒做习惯了吧,哈哈,这各这样比喻是否准确),不过他们都有一个强项,生育儿子的能力特别的强(指实现这些接口的类或者派生的子接口),如果运气好的话,可能生到的是一个勤快的,有出息的儿子(实现了接口的类),这个儿子会把这些懒惰的祖辈们的事情全给包览下来,全部去帮他们做完(实现了接口中所有的方法),当然如果运行不好,生出来的儿子不既跟他一样,而且还会变本加厉(可能拥有更多没有方法体的方法),依此类推......哈哈,不过最终他们的子孙们都是有出息的,都会把他们祖辈(可能有曾爷爷,爷爷,爸爸,伯伯,叔叔,可能有点不太准确,不过java能实现多个接口,我只能这么理解)留下来的事情全部去做完的.就像抽像类一样,当哪天有人要这些懒惰的祖辈们去做他们应该做的事情的时候,他们就会不耐烦的跟你说,我找我儿子(或者侄子)去吧,我全权交给他来负责,那个人也只好找他儿子去啦....,最终最终,那个人还是找到这些懒惰祖辈们那个最有出息那个子孙(实现这些接口的类),让这个子孙去做那些事情(当用接口的引用调用接口的方法时)

抱歉!评论已关闭.