只給出方法定義而不具體實現的方法被稱爲抽象方法,抽象方法是沒有方法體的,在代碼的表達上就是沒有“{}”。(相當於C++的純虛函數)
abstract 修飾符可以與類和方法一起使用。被修飾的類不能被實例化,被修飾的方法必須在包含此方法的類的子類中被實現。含有抽象方法的類一定是抽象類。
Java 可以創建一種稱作接口(interface)的類,在這個類中,所有的成員方法都是抽象的,也就是說它們都只有定義而沒有具體實現,接口是抽象方法和常量值的定義的集合。從本質上講,接口是一種特殊的抽象類,這種抽象類中只包含常量和方法的定義,而沒有變量和方法的實現。
- 接口中聲明的屬性默認爲public static final,也只能是public static final的,因而在常量聲明時可以省略這些修飾符;
- 接口中只能定義抽象方法,這些方法默認爲public abstract的、也只能是public abstract的,因而在聲明方法時可以省略這些修飾符;
- 接口可以繼承(inherit)多個父接口,類可以實現(implement)多個接口。
- 接口的必要性:接口是可插入性的保證。