-
1 # 定格往憶
-
2 # java架構的傲慢與偏見
按照我對提問的理解,應該是想要知道兩個問題:一、介面與抽象類的區別,二、java關鍵字怎麼理解。(雖然不知道是不是一定是您想要的,但至少帶給您一些幫助吧)
首先來看第一個,介面與抽象類的區別:
一、抽象類
抽象類是為了繼承而存在的,是用來捕捉子類通用性的。必須在類前用abstract關鍵字修飾,它不能被例項化,只能被用作子類的超類,可以將它看成是用來建立繼承層級裡子類的模版。
雖然包含了抽象方法的類就是抽象類,但不意味著抽象類中只能存在抽象方法,它跟普通類一樣,也可以擁有自己的成員方法和變數。
如果一個類繼承於一個抽象類,那麼子類必須要實現父類的抽象方法,否則子類必須也定義為abstract類。
二、介面
介面就是平時我們提供別人呼叫的方法。可以將其想象成抽象方法的集合,使用interface關鍵在修飾,如果一個類實現了某個介面,那麼就必須實現介面中的方法,java允許一個類實現多個介面。
三、兩者的區別總結
1、一個類只能繼承一個抽象類,但是可以實現多個介面;
2、抽象類中可以包含抽象方法和非抽象方法,但是,介面中的所有方法均為抽象的;
3、抽象類中可以包含靜態程式碼塊和靜態方法,而介面則不允許。
四、何時使用抽象類,何時用介面
1)如果你想讓一些方法有預設的實現,那麼請使用抽象類;
2)如果你想實現多重繼承,那麼請使用介面。
五、最後說下關鍵字
java中的關鍵字很多,比如,有訪問控制的:private、public、protected;有類、方法、變數修飾符的:class、abstract、interface、static;有程式控制的:for、while、continue、break等等,這裡就不一一列舉了。
由上述看來,關鍵字可以理解為事先定義好的有特殊含義的字元,它們可以用來被java所認識,用來表示一種資料型別或者程式結構的。
回覆列表
關鍵字:可理解為程式語言的約定標識,每個關鍵字標識不同的作用,例如姓名,身份證號,年齡可以理解個人資訊的關鍵字
介面和抽象類:可理解為對一類操作的限制,例如腳踏車物件,可約定開門,點火,行駛,停車等操作,不同的車型執行這些操作可惜有不同的方法,例如,開門有機械式手工開門,跑車的電動開門等,這就對應介面和抽象類的具體實現類
jdk1.8之前介面不提供預設實現,抽象類提供部分介面的實現,可理解抽象類為介面的部分實現
jdk1.8介面可使用default提供預設實現,說白了,介面和抽象類基本沒啥區別了了