Java 抽象類別與介面的差異是什麼?
抽象類別:在Java中被abstract關鍵字修飾的類別稱為抽象類,被abstract關鍵字修飾的方法稱為抽象方法,抽象方法只有方法的聲明,沒有方法體。抽象類別的特點:
1、抽象類別不能被實例化只能被繼承;
2、包含抽象方法的一定是抽象類,但是抽象類別不一定含有抽象方法;
3、抽象類別中的抽象方法的修飾符只能為public或protected,預設為public;
4、一個子類別繼承一個抽象類,則子類別必須實作父類別抽象方法,否則子類別也必須定義為抽象類別;
5、抽象類別可以包含屬性、方法、建構方法,但是建構方法不能用於實例化,主要用途是被子類別呼叫。
介面:Java中介面使用interface關鍵字修飾,特點為:
1、介面可以包含變數、方法;變數被隱士指定為public static final,方法被隱士指定為public abstract(JDK1.8之前);
2、介面支援多重繼承,即一個介面可以extends多個接口,間接的解決了Java中類別的單繼承問題;
3、一個類別可以實作多個介面;
4、JDK1.8中對介面增加了新的特性:
預設方法(default method):JDK 1.8允許給介面添加非抽象的方法實現,但必須使用default關鍵字修飾;定義了default的方法可以不被實現子類別所實現,但只能被實現子類別的物件呼叫;如果子類別實作了多個接口,並且這些介麵包含相同的預設方法,則子類別必須重寫預設方法;
靜態方法(static method):JDK 1.8中允許使用static關鍵字修飾一個方法,並提供實現,稱為介面靜態方法。介面靜態方法只能透過介面呼叫(介面名.靜態方法名)。
推薦教學:《PHP教學》
以上是Java 抽象類別與介面的差別是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!