1. 程式人生 > >介面和抽象類得區別

介面和抽象類得區別

首先是基本定義

介面

使用介面(interface),可以指定某個類必須實現哪些方法,但不需要定義這些方法的具體內容。

介面是通過 interface 關鍵字來定義的,就像定義一個標準的類一樣,但其中定義所有的方法都是空的。

介面中定義的所有方法都必須是公有,這是介面的特性。

要實現一個介面,使用 implements 操作符。類中必須實現介面中定義的所有方法,否則會報一個致命錯誤。類可以實現多個介面,用逗號來分隔多個介面的名稱。

抽象類

任何一個類,如果它裡面至少有一個方法是被宣告為抽象的,那麼這個類就必須被宣告為抽象的。

定義為抽象的類不能被例項化。

被定義為抽象的方法只是聲明瞭其呼叫方式(引數),不能定義其具體的功能實現。

繼承一個抽象類的時候,子類必須定義父類中的所有抽象方法;另外,這些方法的訪問控制必須和父類中一樣(或者更為寬鬆)。例如某個抽象方法被宣告為受保護的,那麼子類中實現的方法就應該宣告為受保護的或者公有的,而不能定義為私有的。

 

個人總結主要區別

1.子類可以繼承多個介面,但只能繼承一個抽象類

2.介面中所有方法都不定義具體得內容,而抽象類中只有抽象方法不定義具體方法內容

3.介面中方法全部為公用得許可權,而抽象方法中可以定義任意許可權,但是子類實現此方法的時候要一樣或寬鬆

於父類。