[Java] 介面及抽象類別的差異

介面是和抽象類別很像的東西,就把想到的打在下面,以免忘記。

(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)需要使用迂迴的方式去找出實體類別間的對應關係,所以與抽象類別的速度相比之下,較為緩慢。

About 張海芋

城市裡的小小迷僮工程師,喜歡用鍵盤記錄個人生活的點滴,身邊的人事物都我的靈感,用心踏出每個腳步,用文字灌溉《海芋小站》,用專業解決問題。

發表迴響