《真女神轉生5》惡魔介紹:日本地靈山靈
阿新 • • 發佈:2021-11-03
1、基本語法區別
Java中介面和抽象類的定義語法分別為interface
與abstract
關鍵字。
抽象類:在Java中被abstract關鍵字修飾的類稱為抽象類,被abstract關鍵字修飾的方法稱為抽象方法,抽象方法只有方法的宣告,沒有方法體。抽象類的特點:
a、抽象類不能被例項化只能被繼承;
b、包含抽象方法的一定是抽象類,但是抽象類不一定含有抽象方法;
c、抽象類中的抽象方法的修飾符只能為public或者protected,預設為public;
d、一個子類繼承一個抽象類,則子類必須實現父類抽象方法,否則子類也必須定義為抽象類;
e、抽象類可以包含屬性、方法、構造方法,但是構造方法不能用於例項化,主要用途是被子類呼叫。
介面:Java中介面使用interface關鍵字修飾,特點為:
a、介面可以包含變數、方法;變數被隱士指定為public static final
,方法被隱士指定為public abstract(JDK1.8之前)
;
b、介面支援多繼承,即一個介面可以extends
多個介面,間接的解決了Java中類的單繼承問題;
c、一個類可以實現多個介面;
d、JDK1.8中對介面增加了新的特性:(1)、預設方法(default method
):JDK 1.8允許給介面新增非抽象的方法實現,但必須使用default關鍵字修飾;定義了default
的方法可以不被實現子類所實現,但只能被實現子類的物件呼叫;如果子類實現了多個介面,並且這些介面包含一樣的預設方法,則子類必須重寫預設方法;(2)、靜態方法(static method
如下例子所示:
public interface Person{ public static final int a=10; //JDK1.8 default void sayHello(){ System.out.println("Hello World"); } public void say(); } public abstract class Person{ public abstract void say(); public void eat(){}; }
如上述程式碼所示:
介面只能是功能的定義,而抽象類既可以為功能的定義也可以為功能的實現。