首頁 >Java >java教程 >java中的抽象類別實例詳解

java中的抽象類別實例詳解

零下一度
零下一度原創
2017-07-26 17:37:352126瀏覽

抽象類別:

#  1、包含一個或多個抽象方法的類別本身必須被聲明成抽象的。

  2、除了抽象方法之外,抽象類別還可以包含特定資料和具體方法

  3、擴展抽象類別的兩個選擇(抽象方法的具體實作在子類別中) :

       A、 抽象類別定義部分抽象類別或不定義抽象類別方法,以便也必須將子類別標記為抽象類別。

       B、定義全部的抽象方法,因此子類別就不是抽象的了

   4、無法直接被實例化,可以間接使用

   5、一個類別如果繼承一個抽象類,必須實現該抽象類別裡宣告的抽象方法

    若不實現,需要將自己宣告為抽象類別(這可能會是個提問)

#下面來說說JDK8裡面介面的新特性:

介面不在只能使用抽象的方法了,可以加入具體方法,可以是靜態的也可以是非靜態的,非靜態的方法前面要使用關鍵字defualt。

靜態方法只能被抽口引用,非靜態的方法只能被implement類別實例化的物件引用。所以當2個介面的靜態方法名字相同時,不會有問題,只能被介面的類別名稱. 引用。而非靜態方法就會出現問題,因為物件不知道使用引用哪個介面的方法,就會造成編譯失敗。

下面用程式碼示範一下

package 面向对象;//JDK8的接口新特性。interface A
    {public abstract void hehe();//传统抽象方法public static void haha()//静态方法        {
            System.out.println("haha");
        }public default void lala()
        {
            System.out.println("lala");//非静态要加关键字default        }
    }public class Test implements A
{public static void main(String[] args)//因为不是抽象的所以可以重写也可以直接使用。    {
        A.haha();//不能被Test调用new Test().lala();//非静态要创建实例使用    }
    
}

神奇的是有抽象方法存在,子類別並沒有重寫抽象方法,虛擬機器沒有報錯,表示介面是不用寫預設的抽象方法的。

以上是java中的抽象類別實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn