对于抽象类而言,大多数的人都不太理解,它到底该如何的与其他的内容进行区分,接下来就具体分析下区别有哪些:
1、与具体类进行比较,抽象类的特殊之处:
(1)不能直接实例化,使用new运算符会导致错误的发生,虽然有一些变量可以抽象,但是变量的值必须为null或者含有对非抽象类的实例引用
(2)允许(但不要求)包含抽象成员
(3)不能被密封
2、与接口进行比较:
(1)接口只能定义各个方法的界面(方法名,参数列表,返回类型),不关心具体的细节。
(2)接口属于引用类型
3、接口与抽象类的相似之处:
(1)不能被实例化
(2)包含未实现的方法声明
(3)派生必须实现未实现的方法,抽象类是抽象方法
4、接口与抽象类的差别:
(1)类可以实现无限个接口,但仅能从一个抽象类(或任何其他类型)类继承,接口可用来解决多重继承问题
(2)抽象类中可以存在非抽象的方法,但是接口不能,并且接口中的方法只是一个用public修饰来声明而没有具体实现的方法
(3)抽象类的成员变量可被不同的修饰符修饰,而接口是静态常量
(4)抽象类是对象的抽象,而接口是一种行为规范