接口和抽象类有什么不一样?

设计目的不一样:接口作为系统与外界交互的窗口,接口体现的是一种规范。对于接口的实现者而言,接口规定了实现者必须向外提供哪些服务(以方法的形式来提供);而对于接口的调用者来说,接口规定了调用者可以调用哪些服务,以及如何调用这些服务(也就是规定传递什么样的参数给这个接口,这个接口才能给你相应的返回值)。在当一个程序中使用接口时,接口时多个模块之间的耦合标准;当在多个应用程序之间使用接口时,接口时多个程序之间的通信标准。

从某种程度上来看,接口类似于整系统的“总纲”,它指定了系统个模块应该遵循的标准,因此一个系统中的接口不应该经常改变。一旦接口被改变,对整个系统甚至其他系统的影响将是辐射式的,导致系统中大部分类都需要改写。

抽象类则不一样,抽象类作为系统中多个子类的共同父类,它所体现的是一种模板设计。抽象类作为多个子类的抽象父类,可以被当成系统实现过程中的中间产品,这个中间产品已经实现了系统的部分功能(那些已经提供实现的方法),但这个产品依然不能当成最终产品,必须由更进一步的完善,这种完善可能有几种不同方式。

posted @ 2023-02-10 14:37  英特耐雄纳尔定要实现  阅读(23)  评论(0)    收藏  举报