抽象類

抽象類最大的特點就是包含了抽象方法,而抽象方法是隻聲明而未實現(沒有方法體)的方法。抽象方法在定義時要使用abstract關鍵字完成,且一定要在抽象類之中;

定義一個抽象類:

abstract class A {

         private String info = "Hello World ." ;

         public void print() {

                   System.out.println(info) ;

         }

         public abstract void get() ;      //只聲明沒有方法體

}

抽象類的使用原則:

            ·抽象類必須有子類,使用extends繼承,一個子類只能繼承一個抽象類;

         ·子類(如果不是抽象類)則必須覆寫抽象類之中的全部抽象方法;

         ·抽象類對象可以使用對象的向上轉型方式,通過子類來進行實例化操作。

使用抽象類:

abstract class A {

         private String info = "Hello World ." ;

         public void print() {

                   System.out.println(info) ;

         }

         public abstract void get() ;    // 只聲明沒有方法體

}

class Impl extends A {

         public void get() {

                   System.out.println("Hello MLDN .") ;

         }

}

public class Test {

         public static void main(String args[]) {

                   A a = new Impl() ;        //向上轉型

                   a.print() ;    //自己類定義

                   a.get() ;       //子類負責實現

         }

}

1,抽象類不能使用fianl定義,因爲抽象類必須有子類,而final不能有子類;

2,抽象類中可以包含構造方法,因爲抽象類之中除了包含抽象方法之外,還包含了普通方法和屬性,而屬性一定要在構造方法執行完畢之後才能進行初始化操作;

3,抽象類中可以沒有抽象方法,但是反過來講,如果有抽象方法,則一定是抽象類,即使抽象類之中沒有抽象方法,也不能被直接實例化

4,如果定義的是外部抽象類,則不能使用static聲明,但如果定義的是內部抽象類,那麼這個內部的抽象類使用static聲明之後,就表示一個外部的抽象類。






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