介面 interface,就是描述不同類別的共通行為。
使用介面的主要原因通常是用來多重繼承,Java原本只能單一繼承,而介面可以實現物件導向中的多重繼承,宣告的話就是用implements
,跟繼承(extends)寫法類似。
class SubClass extends SuperClass implements Interface1, Interface2 {...}
或是
class SubClass implements Interface1, Interface2 {...}
介面可以預先定義規格給實作這個介面的所有子類別,它可以說是一種所有方法都是抽象方法的抽象類別,就像是組織最上層的領導都是只出一張嘴讓下面的人做事一樣(這樣講會不會被打),所以子類別必須實作裡面的所有抽象方法,而介面跟介面之間是可以再繼承的。
interface InterfaceA [extends InterfaceB, InterfaceC] {
// 資料型態 變數名稱 = 值;
// 回傳型態 方法名稱();
}
介面還會被用來貼標籤、型態轉換和降低相依性,由於介面也是一種參考型態,也就是說它提供了另一種彈性,讓子類別再繼承父類別原有的特性之外,也能有其他型態的特性。因為一個物件可以實作多個介面,所以每一個父介面都可以當作這個物件的父多型之一,所以用介面來幫物件貼標籤或是做型態轉換會比較容易。