首页 理论教育接口与抽象类的区别及实战应用

接口与抽象类的区别及实战应用

【摘要】:通过前面的学习,相信读者已经对接口和抽象类有了更具体认识。接口和抽象类都包含着未实现的方法声明。抽象类必须为在该类的基类列表中列出所有成员以便让实现类实现,但接口允许空方法。

通过前面的学习,相信读者已经对接口和抽象类有了更具体认识。接口和抽象类都是面向对象编程中一种重要的设计模式,在一些主流的面向对象编程技术中应用得非常广泛,虽然接口与抽象类在使用上类似,实现的目的也相同,但它们之间还存在一些明显区别,下面将介绍接口与抽象类之间的区别。

1.接口与抽象类的共同点

接口是引用类型,是一套行为和规范,它用于描述软件上层设计的一个界面,告诉软件设计者“我能做什么?”。抽象类是类的功能抽象化,需要通过继承关系才能确定抽象类实现的功能,它们之间都是软件设计的主流模式,同时也存在一些共同点,分别如下。

➢接口和抽象类都不能被实现化,接口需要使用implements实现;而抽象类使用普通类的extends关键字继承。

➢接口和抽象类都包含着未实现的方法声明。

➢派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员。(www.chuimin.cn)

2.接口与抽象类的区别

抽象类是对对象的抽象,可以把抽象类理解为类的描述。而接口只是一个行为的规范或规定。两者之间的区别概括如下。

➢抽象类不能被密封,但接口可以。

➢抽象类实现的具体方法默认为虚的,但实现接口的类方法默认为实的。

➢抽象类必须为在该类的基类列表中列出所有成员以便让实现类实现,但接口允许空方法。