1. 程式人生 > >java中抽象類與介面的區別

java中抽象類與介面的區別

抽象類:抽象類更多的是用來定義一個很多東西的本質,即他是不是,如果我們可以宣告一個抽象類annimal,然後新建一個cat類去繼承它,通過重寫annimal類的抽象方法,那麼我們就能夠擁有annimal類的特徵了。

介面:介面與抽象類的定義其實差不多,但是究其本源,介面更多的是用來定義“能不能”的特性,比如我貓能吃飯,能夠翻牆等。同時,介面中能夠定義變數,但是變數是public static finnal 的型別,即靜態常量,不能夠修改,且必須賦初值。

抽象類與介面的區別:

1:抽象類只能夠延續java單繼承的特性,一個類只能繼承一個類,但是一個類卻能夠繼承多個介面。

2:抽象類中,可以有成員變數,也可以有非抽象的方法,但是在介面中,只能夠有靜態常量,而且方法也只能是抽象方法。

3:抽象類中可以如果被一個類繼承,那個類如果沒有重寫所有的抽象方法,那麼該類必須被宣告為抽象類,而你如果繼承一個介面,那麼你必須實現其所有的方法。

4:介面中不能夠宣告static方