介面和抽象類得區別
阿新 • • 發佈:2018-11-16
首先是基本定義
介面:
使用介面(interface),可以指定某個類必須實現哪些方法,但不需要定義這些方法的具體內容。
介面是通過 interface 關鍵字來定義的,就像定義一個標準的類一樣,但其中定義所有的方法都是空的。
介面中定義的所有方法都必須是公有,這是介面的特性。
要實現一個介面,使用 implements 操作符。類中必須實現介面中定義的所有方法,否則會報一個致命錯誤。類可以實現多個介面,用逗號來分隔多個介面的名稱。
抽象類:
任何一個類,如果它裡面至少有一個方法是被宣告為抽象的,那麼這個類就必須被宣告為抽象的。
定義為抽象的類不能被例項化。
被定義為抽象的方法只是聲明瞭其呼叫方式(引數),不能定義其具體的功能實現。
繼承一個抽象類的時候,子類必須定義父類中的所有抽象方法;另外,這些方法的訪問控制必須和父類中一樣(或者更為寬鬆)。例如某個抽象方法被宣告為受保護的,那麼子類中實現的方法就應該宣告為受保護的或者公有的,而不能定義為私有的。
個人總結主要區別:
1.子類可以繼承多個介面,但只能繼承一個抽象類
2.介面中所有方法都不定義具體得內容,而抽象類中只有抽象方法不定義具體方法內容
3.介面中方法全部為公用得許可權,而抽象方法中可以定義任意許可權,但是子類實現此方法的時候要一樣或寬鬆