java接口和抽象类的比较

相同点:ide

都位于继承的顶端,用于被其余实现或继承;函数

都不能实例化;对象

都包含抽象方法,其子类都必须覆写这些抽象方法;继承

 

区别:接口

抽象类为部分方法提供实现,避免子类重复实现这些方法,提供代码重用性;接口只能包含抽象方法;it

一个类只能继承一个直接父类(多是抽象类),却能够实现多个接口;(接口弥补了Java的单继承)class

 

两者的选用:构造函数

优先选用接口,尽可能少用抽象类;方法

须要定义子类的行为,又要为子类提供共性功能时才选用抽象类;总结

 

 

个人总结:

接口不能有构造函数,抽象类是能够有构造函数的,

abstract能够定义构造函数(包括带函数的构造函数),由于要保证其子类在建立的时候可以进行正确的初始化,可是Abstract类不能被实例化。

 

知识点:若是不能够或者没有建立对象,那么咱们必须加上static修饰,不能用对象调用,就只好用类去调用。

相关文章
相关标签/搜索