关于接口,抽象类,实体类的关系

来源:百度知道 编辑:UC知道 时间:2024/05/29 05:38:34
我对API的的分层结构,以及接口,抽象类,实体类的关系是这样理解的,大家看对不对

接口:把某个功能或者某个模块抽象出来,先定义了他们能干什么,也就是写成抽象方法,即规定了每个方法的方法名,参数列表,返回类型,相对于我们做项目来说,就是告诉下面的程序员,当你要在这个功能模块下开发方法的具体实现的时候,为了统一与规范,并须与接口中已经定义了的方法的
参数列表,返回类型一致,即要去实现接口。

抽象类:抽象类是API中的第二层,之所以用到它,是因为下面的实现类如一般只会去实现顶层接口的一部分功能,如果直接去实现接口就必须要实现接口中所有的方法,所以先用抽象类去实现接口的一部分方法(抽象类可以实现一部分,而实体类必须实现全部),最后让实体类去继承抽象类的一部分功能。

抽象类里既有抽象方法又有已实现方法是因为,抽象类中有一类方法是下面的实现类通用的,不会有变化,所以在抽象类里面就实现了,而不通用的方法就写成抽象方法,让实现类各自去实现。

由于API分类更加复杂,一般需要分成更多层,所以有时候接口会继承接口,实现类也可能直接实现接口。

嗯,你理解得还挺好的:

我推荐你去看一下<<java与模式>>这本书.写得很好. 里面解释得很清楚.

里面涉及的一些模式都涉及抽象类和接口,特别体现在接口方面. 接口这个概念很是精华!!!

还有关于抽象类和接口还补充一点:

就是由于实体类只能有一个父类(不像c++里面可以继承多个类),当你既需要这个抽象类中的功能,又需要另外一个抽象类的功能的时候,这时候就只能将一个抽象类设置为一个类的超类,再从抽象类中继承,然而当抽象类还有父类的时候,又会向上一层扩展继承,这样会很麻烦.

出于上面的想法,于是出了接口这个概念,一个接口就相当于是一个功能.要想某个类具有某个功能,直接实现一个接口就可以了.而且一个类可以实现多个接口,这样就解决了抽象类的继承问题.

关于抽象类相对于接口的一些好处,你说得还挺好!
就是那个样子吧.

加油!!!!