抽象类(abstract class)与接口(interface)的异同
来源:互联网 发布:asp.net php学那个好 编辑:程序博客网 时间:2024/05/18 00:37
抽象类:包含抽象方法的类就是抽象类
接口:指抽象方法的集合,方法不包含方法体
相同点:
- 都不能被实例化
- 接口的实现类或者抽象类的子类都必须实现了接口或抽象类中的方法后才可以被实例化
不同点:
- 接口只有定义,方法不能在接口中实现,实现接口的类要实现接口中所有的方法;抽象类可以有定义与实现,方法可以在抽象类中实现
- 接口要实现,抽象类要继承,一个类可以实现多个接口,但只能继承一个抽象类
- 接口强调设计理念为“has -a”的关系,抽象类强调“is -a”关系
- 接口中定义变量默认为public static final,且要赋初值,方法必须是public,static,且只能是这两个;抽象类中可以有自己的数据成员变量,也可以有非抽象的成员方法,而且成员变量默认为default。这些成员变量可以在子类中被重新定义,也可以重新赋值,抽象方法(有abstract修饰)不能用peivate,static,synchronized,native等访问修饰符修饰,同时方法以分号结尾,并且不带花括号
接口被运用于比较常用的功能,便于日后的维护或者添加删除方法;而抽象类更倾向于充当公共类的角色,不适用于对里面的代码进行修改
接口是一种特殊形式的抽象类,使用接口完全有可能实现与抽象类相同的操作。当子类和父类之间存在有逻辑上的层次结构时,推荐使用抽象类;当用于不同类之间,定义不同类之间的通信规则,希望支持差别较大的两个或者更多对象之间的特定交互行为时,应该使用接口。
此外,接口可以继承接口,抽象类可以实现接口,抽象类也可以继承具体类。抽象类也可以有静态的main方法。
0 0
- 抽象类(abstract class)与接口(interface)的异同
- 抽象类(abstract class)与接口(interface)的异同
- interface,abstract class,abstract interface Java中的接口,抽象类和抽象接口的异同
- Abstract Class and Interface 抽象类与接口的区别
- 抽象类 abstract class 与 接口 interface 的区别
- 接口(interface) 与 抽象类(abstract class) 的区别
- 比较C#中抽象类(abstract class)和接口(interface)的异同
- Interface与Abstract class的异同
- Interface与Abstract class的异同
- Interface与Abstract class的异同
- Interface与Abstract class的异同
- abstract class与interface的异同点
- Interface与Abstract class的异同 一
- java 接口(Interface)与 抽象类(abstract class)
- 接口(Interface)与抽象类(abstract class)
- java 接口(Interface)与 抽象类(abstract class)
- 接口(interface)与抽象类(abstract class)
- 抽象类(Abstract Class)与接口(Interface)区别
- HDFS too many open files,fd limit的问题(二)
- Http协议
- Android安全之WebViewUXSS漏洞
- boost库的weak_ptr剖析
- 方法的定义
- 抽象类(abstract class)与接口(interface)的异同
- Linux常用命令学习总结(一)
- LeetCode 7. Reverse Integer
- HBase操作(Shell与Java API)
- HTML5新特性结合PHP实现多图片格式转换功能 欢迎讨论
- unity - 二进制文件操作-存储与读取
- java工程如何打jar包和war包
- [CSU 1804 有向无环图] DP+拓扑排序
- Android databinding笔记