【筆記】 抽象類 和 接口

抽象類(abstract class)

  • 定義:包含抽象方法的的類是abstract class

    用abstract關鍵字修飾

  • 作用:abstractclass是爲了把相同的東西提取出來,即重用

  • 使用abstractclass語法規定

語法 備註
抽象類定義用abstract關鍵字修飾 要通過子類進行實例化
抽象類是不能被實例化的 只能通過子類進行實例化(extends)
子類必須重寫父類的所有抽象方法 抽象方法:聲明但卻未被實現的方法,用abstract關鍵字修飾
含有抽象方法的類一定是抽象類,但是抽象類不一定含有抽象方法
抽象類是在功能上的一個規定

 

 

 

接口(Interface)

  • 定義:比abstract class更加抽象,是一種特殊的abstract class

    用Interface關鍵字修飾

  • 作用:Interface是爲了把程序模塊進行固化的契約,是爲了降低偶合

  • 使用Interface的語法規定
語法 備註
接口定義用Interface關鍵字修飾  
接口中的所有方法都是抽象的 可以用abstract修飾,也可以省略
接口中的方法必須是用public修飾,或不寫 但是不能被其他修飾符修飾
接口中的屬性必須是全局常量 public static final修飾
抽象類是用來被它的子類實現的 關鍵字Implements
抽象類是在結構上的一個規定
接口不能被實例化
子類實現接口時需要實現接口中的所有方法 若有一個未不實現,該子類就是抽象類abstract class

 

 

1.抽象類(abstract) :不能被實例化,只能被繼承(extends),繼承的子類必須全部重寫其父類的抽象方法;

2.接口(interface):   不能被實例化,只能被實現(implements),實現子類如果沒有全部重寫此interface的抽象方法,則此子類就是一個抽象類(absctract)

 

 1. 抽象類可以有構造方法,有普通成員變量,包含靜態方法;接口不能有構造方法 ,沒有普通成員變量,不能包含靜態方法
 2. 抽象類中可以包含非抽象的普通方法,接口中的所有方法必須是抽象的,不能有非抽象的普通方法 
 3. 抽象類中抽象方法的訪問類型可以是public,protected和默認類型雖然(eclipse下不報錯,但應該也不行),但接口中的抽象方法只能是public類型,並且默認即爲public abstract類型 
 5. 抽象類和接口中都可以包含靜態成員變量,抽象類中的靜態成員變量的訪問類型可以任意,但接口中定義的變量只能是public static final類型,並且默認即爲public  static final類型 
 6. 一個類可以實現多個接口,但只能繼承一個抽象類

 

抽象類(abstract)可以看成是普通類的 “ 半抽象” 的結果,可以包含普通類應該有是“構造函數”,“普通成員變量” ,“靜態方法” ;

接口(interface)可以看成是普通類的 “完全抽象” 的結構 ,不能有“構造函數” , “普通成員變量” ,“靜態方法”;

因爲 抽象類(abstract) 有部分屬於普通類,所以一個普通類只能繼承一個 抽象類(abstract) ;

因爲接口(interface)是抽象成的一個“框架”,所以一個類 可以同時實現(implements) 多個接口而不衝突;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章