介面(interface):於介面中定義方法,屬性,和事件。 如果要使用(implementation)必須通過類別來繼承介面才能使用。
介面特點:
*不能對介面進行實列化
*類別與介面都能繼承一個以上的介面,介面也可繼承介面。
*聲明介面時,不允許定義修飾詞,ex:public , private ,static.
介面語法:
//宣告
interface 介面名
{
[資料型別] 屬性名稱
{
get;
set;
}
[資料型別/void] 方法名稱();
}
//實作
class 類別名稱:介面名稱
{
private 資料型別 欄位名稱=預設值;
public 資料型別 [介面名稱.]屬性名稱
{
get{return 欄位名稱;}
set{欄位名稱=value;}
}
[資料型別/void]介面名稱.方法名稱()
{//方法內容;
}
}
抽象類別(Abstration class):只能用來提供給其它類別繼承的基底類別。
特點:
*抽象類別不能進行實體化
*抽象方法只能於抽象類別中定義,不能使用static,virtual關鍵字
*抽象類別不能用sealed修飾詞
//宣告:
abstract class 抽象類別名稱
{
//不實作程式碼宣告
public abstract 資料型別 屬性名稱{get;set;}
public abstract 資料型別 方法名稱(參數群);
//實作程式碼宣告
public 資料型別 方法名稱(參數群)
{//內容;}
}
//繼承
class 繼承類別名稱:抽象類別名稱
{
public override 資料型別 方法名稱(參數群)
{
//程式碼
}
public override 資料型別 屬性名稱
{
get{return 欄位名稱;}
set{欄位名稱=value;}
}
}
abstract class 與 interface 比較
abstract class interface
功能 提供樣板 提供樣板
可實作方法與屬性 可以 不可
執行實體化 否 否
使用方法 被繼承才能用 需要被繼承並且實作才能用
便用時機 有繼承關系的類用 可供合不相關的類使用