接口抽象类普通类区别(接口抽象类)

摘要 大家好,我是小典,我来为大家解答以上问题。接口抽象类普通类区别,接口抽象类很多人还不知道,现在让我们一起来看看吧!“抽象类”和“接...

大家好,我是小典,我来为大家解答以上问题。接口抽象类普通类区别,接口抽象类很多人还不知道,现在让我们一起来看看吧!

“抽象类”和“接口”的区别:

1、接口可以被多重implement*,抽象类只能被单一extends 。  

2、接口只有定义,抽象类可以有定义和实现 。  

3、接口的字段定义默认为:public static final, 抽象类字段默认是“friendly”。

4、接口没有构造方法,抽象类可以有构造方法。

抽象类

抽象类是用来捕捉子类的通用特性的 。它不能被实例化,只能被用作子类的超类。抽象类是被用来创建继承层级里子类的模板。

接口

接口是抽象方法的集合。如果一个类实现了某个接口,那么它就继承了这个接口的抽象方法。这就像契约模式,如果实现了这个接口,那么就必须确保使用这些方法。接口只是一32313133353236313431303231363533e78988e69d8331333366306466种形式,接口自身不能做任何事情。

扩展资料:

语法定义层

在abstract class方式中,Demo可以有自己的数据成员,也可以有非abstract的成员方法,而在interface方式的实现中,Demo只能够有静态的不能被修改的数据成员,所有的成员方法都是abstract的。

编程层面

abstract class在Java语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。

设计理念层面

abstract class在Java语言中体现了一种继承关系,要想使得继承关系合理,父类和派生类之间必须存在"is a"关系,即父类和派生类在概念本质上应该是相同的。

对于interface 来说则不然,并不要求interface的实现者和interface定义在概念本质上是一致的,仅仅是实现了interface定义的契约(功能)而已。

参考资料:百度百科——java抽象类

importnew——Java抽象类与接口的区别

本文到此讲解完毕了,希望对大家有帮助。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时候联系我们修改或删除,多谢。