Java基础之【接口和抽象类的区别】

其实java8引入了default默认方法后,接口抽象类的差别被缩小了,所以这个问题的意义就没那么大了,而且实际中我们通常只使用接口

关键的区别有4点:

1.接口中的方法必须被其实现类@override ,而抽象类中的方法子类去extends的时候不必须去@override

2.抽象类可以有抽象跟非抽象方法,接口只能由抽象方法,从java8开始接口也可以有默认和静态方法,那么实现类也可以不用去override该方法了

3.抽象类单继承,接口多继承(可以实现多个)

4.接口可以有final no-final和no-static变量 接口只有静态变量(static final)

详细区别参考秒懂百科:

1.抽象类要被继承 接口要被实现

2.接口只能做方法生命,抽象类中可以做方法声明跟方法实现

3.抽象类定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量

4.接口是设计的结果,抽象类是重构的结果

5.接口的抽象级别最高

6.抽象类可以用具体的方法跟属性(跟普通类一样),接口只能有抽象方法和不可变常量

7.抽象类主要用来抽象类别,接口主要用来抽象功能

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章