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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 叶涛 黑马帝   /  2011-10-17 17:17  /  1861 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

接口和抽象类在用法上有哪些区别?哪些地方最需要注意的?

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

4 个回复

倒序浏览
蒋先 黑马帝 2011-10-17 18:53:39
沙发
          abstract class 在Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。在abstract class 中可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是 static final的,不过在 interface中一般不定义数据成员),所有的成员方法都是abstract的。abstract class和interface所反映出的设计理念不同。

评分

参与人数 1技术分 +2 收起 理由
admin + 2

查看全部评分

回复 使用道具 举报
接口是一组抽象方法,常量和内嵌类型的集合。接口是一种数据类型,它以抽象的形式来定义类型。一个类可实现多个接口,提供功能实现并进行类型扩展。接口为多个互不相关的类约定某一特性的方法声明,一个类如果无法实现指定接口中得所有抽象方法,则它必须声明为抽象类。
抽象类为子类约定方法声明,并给出部分实现,包括构造方法等;抽象方法在多个子类中表现出多态性。
注意类是单继承的,一个类只可以继承一个抽象类并给出抽象类中抽象方法的具体实现。但一个类却可以通过实现多个接口,从而给出各个接口中所有抽象方法的具体实现。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
主要的区别,一个类只可以去继承一个抽象类,但是却可以实现多个接口,抽象类往往是在类中的某个方法需要子类去重写所以定义了一个抽象类,而接口往往被用来定义一个标准——  一个功能的使用和实现之间的标准。大家都遵循这样的标准,这样我们写的程序才能够被正常的使用。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
具有关键字abstract ,在实现内容上没有完全定义的类就叫抽象类。
抽象类和接口的区别如下:
① 在类来继承抽象类时,只需实现部分具体方法和全部抽象方法,而实现接口则要实现里面的全部方法。
②在接口中无成员变量,而抽象类中可有成员变量。
在Java中引进接口主要是为了解决多继承的问题。
1)接口中不能有非抽象方法,但抽象类中可以有。
2)一个类能实现多个接口,但只能有一个父类。
3)接口并不属于继承结构,它实际与继承无关,因此无关的类也可以实现同一个接口。

评分

参与人数 1技术分 +2 收起 理由
admin + 2 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马