抽象类与接口的区别
来源:互联网 发布:淘宝联盟怎么加优惠券 编辑:程序博客网 时间:2024/06/05 10:03
接口:Java中的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。
区别:
1)从设计理念层面上:abstract class在Java语言中体现了一种继承关系,要想使得继承关系合理,父类和派生类之间必须存在"is-a"关系,即父类和派生类在概念本质上应该是相同的。对于interface来说则不然,并不要求interface的实现者和interface定义在概念本质上是一致的,仅仅是实现了interface定义的契约而已,接口与实现类 之间的关系是"like-a"的关系。(举例:class AlarmDoor extends Door implements Alarm);
2)从语法定义层面上:在abstract class方式中,抽象类可以有自己的数据成员,也可以有非 abstract的成员方法,而在interface方式的实现中,只能有有静态的不能被修改的数据成员(也就是必须是static final的,不过在interface中一般不定义数据成员),所有的成员方法都是abstract的。从某种意义上说,interface是一种特殊形式的 abstract class。abstract class 在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。这是Java语言的设计者在考虑Java对于多重继承的支持方面的一种折中考虑。在abstract class的定义中,我们可以赋予方法的默认行为。但是在interface的定义中,方法却不能拥有默认行为。
总结:
1、接口可以多重implement(实现),抽象类只能单一extends(继承)
2、接口内只能是功能的定义,抽象类中可以包括功能的定义和功能的实现。
3、接口字段定义默认为public static final,而抽象类的则默认为friendly。
- 抽象类与接口的区别 - [ Java 接口 抽象类 ]
- 抽象类与接口类的区别
- 接口类与抽象类的区别
- 抽象类与接口“类”的区别
- 抽象类与接口的区别
- 转载:抽象类与接口的区别
- 抽象类与接口的区别(1)
- 抽象类与接口的区别
- 抽象类与接口的区别
- 转载:抽象类与接口的区别
- 抽象类与接口的区别 [转]
- 抽象类与接口的区别
- 抽象类与接口的区别
- 抽象类与接口的区别
- 抽象类与接口的区别
- 抽象类与接口的区别 (good)
- 抽象类与接口的区别
- 抽象类与接口的区别
- "Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/helpers/NOPLoggerFactory"错误解决方
- QR二维码中为什么可以插入图片
- MongoDB学习笔记(入门)
- QT控件操作
- 算法导论----VLSI芯片测试; n个手机中过半是好的,找出哪些是好手机
- 抽象类与接口的区别
- 模块构造的编译和装载
- C/C++常用头文件及函数汇总
- QT4.8.3+qtcreator-2.5.2+MinGW环境 出现的一些错误
- UVA - 12491 Words
- Ubuntu Server 12.04“初始化月份字符串出错”的解决方法
- 蚂蚁杆子问题
- 修改计算机名后导致oracle的oem(企业管理器)无法使用
- andriod 生成xml文件 方法