我正在研究抽象类和接口。
有人能告诉我完全抽象的类和接口之间是否存在差异?
答案 0 :(得分:3)
答案 1 :(得分:2)
肯定存在差异。我能想到的前几个是
答案 2 :(得分:1)
抽象类可以包含方法实现,而接口则不能。
答案 3 :(得分:1)
抽象类与接口
与接口不同,抽象类可以包含非静态和最终的字段,并且它们可以包含已实现的方法。这些抽象类与接口类似,不同之处在于它们提供部分实现,将其留给子类来完成实现。如果抽象类只包含抽象方法声明,那么应该声明为接口。
可以通过类层次结构中的任何位置实现多个接口,无论它们是否以任何方式彼此相关。例如,可以考虑可比较或可克隆。
相比之下,抽象类最常被子类化以共享实现部分。单个抽象类由具有许多共同点的类似类(抽象类的实现部分)进行子类化,但也有一些差异(抽象方法)。
完全抽象类和接口之间有区别吗?
如果所有方法都是抽象的,行为几乎(不完全)相同,但是有差异。主要是因为类不能从多个(抽象或非抽象)类扩展,但可以实现许多接口。此外,字段在接口中不能是私有的。
请注意,Oracle文档建议将完全抽象的类转换为接口。
答案 4 :(得分:1)
在界面中:
你只能声明变量,方法但没有在这个接口中写入定义
抽象类: 当一个类被声明为Abstract类时,声明可能包含也可能不包含抽象方法。在抽象类中,我们也可以编写定义。与接口不同,抽象类可以包含非静态和最终的字段。
此类抽象类与接口类似,不同之处在于它们提供部分实现,将其留给子类来完成实现。