A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

什么时候用到接口,什么时候用到抽象类,二者区别?

5 个回复

倒序浏览
接口是一种特殊的抽象类!

并没有定义成抽象和非抽象的情况!

接口中只包含对常量和方法的定义,而没有变量和方法的实现!
回复 使用道具 举报
1,抽象类中可以定义抽象方法和非抽象方法。
接口定义的必须是抽象方法。

2,抽象类只能被继承,而且只能是单继承。
接口可以被实现,而且可以被多实现。

3,类与类之间是继承关系,存在着所属关系 is a。
类与接口之间存在实现关系,关系是: like a。

相同之处:
都是向上抽取而来的。
回复 使用道具 举报
接口是一组规范的定义
抽象类只是相当于占位符,更多的功能需要子类的完善
回复 使用道具 举报
接口是一种完全抽象的类。
“interface”(接口)关键字使抽象的概念更深入了一层。我们可将其想象为一个“纯”抽象类。它允许创 建者规定一个类的基本形式:方法名、自变量列表以及返回类型,但不规定方法主体。接口也包含了基本数 据类型的数据成员,但它们都默认为static和final。接口只提供一种形式,并不提供实施的细节。 接口这样描述自己:“对于实现我的所有类,看起来都应该象我现在这个样子”。因此,采用了一个特定接 口的所有代码都知道对于那个接口可能会调用什么方法。这便是接口的全部含义。所以我们常把接口用于建 立类和类之间的一个“协议”。有些面向对象的程序设计语言采用了一个名为“protocol”(协议)的关键字,它做的便是与接口相同的事情。

满足以下条件是最好使用抽象类:
a)子类不继承其它父类
b)子类中存在完全相同的功能实现的方法
c)子类中存在相同的属性
d)设计出的结构需要继承其它类
当需要满足d条件时,只能使用抽象类,否则也可以考虑使用接口实现。

满足以下条件是最好使用接口:
a)子类已经继承了其它父类
b)子类中不存在完全相同的功能实现方法
c)子类中不存在相同的属性
d)设计出的结构不需要继承其它类
当需要满足a条件时,只能使用接口,否则也可以考虑使用抽象类实现。
回复 使用道具 举报
接口不是类  是对类的具体功能的描述    接口之间可以继承而且是多继承  接口不能实例化对象
抽象类是类 需要使用abstract关键字修饰   抽象类其实就多了一个抽象方法 其他类有的他都有
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马