Java 8中,抽象類和接口都是面向對象編程的基本概念,它們在定義抽象的行為或方法上都有重要作用。
抽象類是一個不能被實例化的類,通常它是為了表達某些抽象的概念,它具體的實現由子類來繼承和實現。抽象類具有以下特點:
abstract class AbstractClass { //抽象方法 public abstract void doSomething(); //非抽象方法 public void doOtherThing() { System.out.println("AbstractClass do other thing!"); } }
抽象類中必須至少包含一個抽象方法,使用abstract關鍵字來修飾,不能有完整的實現,它需要在子類中實現,而且子類必須覆蓋所有的抽象方法。非抽象方法則可以有完整的實現,子類不必須覆蓋。
接口是一種抽象類型,它用來定義一組行為或方法,但是它并不提供任何的具體實現,它只是定義了一些方法的簽名和返回值類型。接口具有以下特征:
public interface MyInterface { //常亮 public static final String NAME = "MyInterface"; //抽象方法 public abstract void doSomething(); //默認方法 public default void doOtherThing() { System.out.println("MyInterface do other thing!"); } }
接口中可以定義常量、抽象方法、默認方法和靜態方法。其中,常量使用public static final關鍵字來定義,在Java 8中,常量還可以簡寫為public static。抽象方法與抽象類中的方法類似,使用abstract關鍵字來修飾,沒有實現。默認方法使用default關鍵字來修飾,提供一個默認的實現,子類可以覆蓋。靜態方法使用static關鍵字來修飾,可以直接使用接口名來調用。
上一篇html的字體隔開代碼
下一篇html的字體色代碼