介面是和抽象類別很像的東西,就把想到的打在下面,以免忘記。
(1)本身具有資料成員及抽象函式,必須以interface來宣告。
interface 介面名稱 { 資料成員; 抽象方法; }
(2)資料成員必須初使化,本身為public static final 型態,亦可省略不宣告,由系統自動幫忙宣告。
(3)介面中若有多個函式,則必須同時宣告為abstract型態,且修飾子只能宣告為public或不宣告。
class 類別名稱 implements 介面1(,介面2,.....) { }
(4)介面不可使用new 運算子產生物件,而利用介面A打造新的類別B的過程,稱之為B實作介面A。
(5)可使用類別B實作多兩個以上的介面,但不可使用類別B繼承兩個以上的抽象類別。
>class 類別名稱 implements 介面1(,介面2,.....) { }
(6)介面和類別一樣,都具有繼承的功能,但一個子介面可繼承多個父介面,但一個子類別不可繼承多個父類別。
interface 介面名稱 extends 介面1(,介面2,.....) { }
(7)介面通常用來描述外部的能力,如機車的輪胎型狀等。
(8)需要使用迂迴的方式去找出實體類別間的對應關係,所以與抽象類別的速度相比之下,較為緩慢。