java中接口與抽象類的區別

寫在前面

這個問題是好多IT碼農在面試中被問到的問題,但往往卻不能夠給出一個比較全面完美的回答,那麼首先來說說為什麼這個問題這麼容易問到?

接口、抽象類與面向對象編程密不可分,如果理解不了接口和抽象類,那麼就說明對面向對象的掌握不夠好。這裡小編給大家一個建議,學習一下面向對象的設計模式!本人在學習了java 23種設計模式之後,才對接口和抽象類有了一個更深層次的認識!幾乎所有的設計模式裡面都有用到,好像就單例模式中可能用不到,其他的都有用到。

java中接口與抽象類的區別

說說區別

1、定義接口的關鍵字是interface ,抽象類的關鍵字是abstract class

2、接口中的方法都是抽象的,抽象類中可以有方法的實現(即非抽象方法)

3、一個類可以實現多個接口,但只能繼承一個抽象類,所以一般來說,可以使用接口實現的儘量使用接口實現。比如Runnable就比Thread使用頻率高的多

4、接口和抽象類中都可以定義變量,但是接口中定義的必須是公共的、靜態的、Final的,抽象類中的變量跟普通類中的沒有區別。

5、抽象類可以包含靜態方法,但是接口中不可以!

6、接口中的方法必須是public的,抽象類中的方法可以使public 和 protected的

7、從設計上來說,接口是對一系列行為的抽象,而抽象類是對事物的抽象。

總結未到之處,歡迎各位大神補充!

相關文章推薦:

zookeeper 介紹

kafka官網譯文

軟件開發大神和菜鳥差距在哪裡

三年JAVA WEB開發應該具備的技術棧

相關推薦

推薦中...