介面
介面(interface)是JAVA所提供的另一項重要功能,它的結構和抽象類別非常相似。介面本身也具有資料成員與抽象函數,但它與抽象類別有以下兩點不同:
(1)介面的資料成員必須初始化(設定初值)
(2)介面裡的函數必須全部定義成abstract,換言之,介面不能像抽象類別一樣保有一般函數,而必須全部都是「抽象函數」。
interface 介面名稱{ //定義介面
final 資料型態 成員名稱 = 常數; //資料成員必須設定初值
修飾子 abstract 傳回值資料型態 函數名稱(引數...); //抽象函數裡,沒有定義處理方式
}
interface Shape{ //定義Shape介面
double PI = 3.14; //省略final關鍵字
void area(); //省略abstract關鍵字
}
介面與一般類別一樣,本身也具有資料成員與函數成員,但資料成員一定要有初值的設定,且此值將不能再更改,而函數必須是「抽象函數」。
記住以下兩點:
(1)介面裡的「抽象函數」,只要做定義名稱,不用定義其處理方式。
(2)資料成員必須設定初值。此外,介面裡的抽象函數只能宣告為public,或是不做宣告,但不能宣告成protected或是private,以便讓實作介面的類別都能取用到他。
實作
因為介面無法像一般類別一樣,用new運算子直接產生一個物件。因此我們必須利用介面的特性來打造一個新的類別,再用他來建立物件。利用介面A打造新的類別B的過程,稱為以類別B實作介面A,或簡稱為介面的實作(implementation)。
class 類別名稱 implements 介面名稱{
...
}
class Circle implements Shape{ //以Circle類別實作Shape介面
double radius;
public Circle(radius r){ //建構元
radius = r;
}
public void area(){ //省略abstract關鍵字
System.out.println("area = "+PI*radius*radius);
}
}
菜鳥工程師也有分享食記,歡迎大家追蹤喔~~
https://instagram.com/engineer_bodyfat?utm_medium=copy_link
連假結束的第一天上班上課日...
好累啊啊啊QQ
See U tomorrow~