java筆記 chapter7 抽象類和數組

抽象類:
     使用abstract 修飾的類就是抽象類。抽象類的本質就是一個類。
     1,抽象類不能被實例化,每每用來作父類,定義子類中共有的方法和屬性。子類繼承抽象類之後,覆蓋實現抽象類裏的抽象方法,而後使用其子類的實例。
         子類必須覆蓋父類(是個抽象類)裏面全部的抽象方法,不然編譯報錯。
     2,抽象類可使用類名直接調用抽象類裏面的靜態成員
     3,抽象類每每做爲父類來使用,而子類的構造方法老是調用父類的構造方法,因此 抽象類必需要有構造方法。若是沒有爲抽象類顯式聲明構造方法,抽象類也存在默認的無參構造器。
抽象方法:
只給出方法定義而不具體實現的方法.(就是沒有方法體的方法,使用abstract修飾)
抽象方法是沒有方法體的,在代碼表達上就是沒有 「{}」。 有花括號就代表有方法體。

抽象類和抽象方法的關係
      抽象類不必定包含抽象方法
     有抽象方法的類必定是個抽象類。

 
接口interface:
接口是一種特殊的抽象類,這種抽象類中只包含常量和方法的定義,而沒有變量和方法的實現。
接口的本質是個抽象類。
接口裏面只能聲明靜態常量和抽象方法,除此以外,接口裏面不能有其餘的元素。
     接口裏的常量,默認是(也只能是) public  static  final 的,這些修飾符可省略;可使用接口名調用常量。
     接口裏的方法都是抽象的,默認是(也只能是)public abstract的,這些修飾符可省略;
 
 
類和接口的關係:
1,類和類之間能夠互相繼承,接口和接口之間也能夠相互繼承,用關鍵字extends表示,區別在於接口能夠同時繼承多個接口,可是一個類只能同時繼承一個類。
2,類和接口之間,只能是類來實現接口,一對多的關係,一個類能夠同時實現多個接口,接口間用逗號分隔開,使用關鍵字implement
public interface A{
          public void a{ };
}
 
public interface B{
          public void b{ };
}
public interface C extends A,B{
          public void c{ };
}
以上例子接口C同時繼承了接口A和B,擁有了A和B的方法,因此C接口裏面有3個抽象方法:a,b,c
 
抽象類和接口的關係:
接口裏面不能定義變量,接口裏的方法必須都是抽象的
抽象類裏能夠有變量,抽象類裏的方法能夠是抽象的,也能夠不是抽象的。
 
擴展:
類繼承父類和類實現接口的區別:
二者本質是同樣的,都是把父類或者接口當作模板,在這個模板上進行擴展或者重寫。
可是類繼承父類只能是單繼承,也就是說一個子類最多隻能有一個父類。
而類實現接口能夠多實現,就是一個子類能夠同時實現多個接口,並覆蓋接口裏面全部的抽象方法。
相關文章
相關標籤/搜索