1. 程式人生 > 遊戲 >《真女神轉生5》惡魔介紹:日本地靈山靈

《真女神轉生5》惡魔介紹:日本地靈山靈

1、基本語法區別

Java中介面和抽象類的定義語法分別為interfaceabstract關鍵字。

抽象類:在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

):JDK 1.8中允許使用static關鍵字修飾一個方法,並提供實現,稱為介面靜態方法。介面靜態方法只能通過介面呼叫(介面名.靜態方法名)。

如下例子所示:

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(){};
}

如上述程式碼所示:

介面只能是功能的定義,而抽象類既可以為功能的定義也可以為功能的實現。