說明
介面可以包含方法、屬性、索引器、和事件作為成員,但是並不能設定這些成員的具體值。也就是說,只能定義,不能那個給他裡面定義的東西賦值。介面具有以下特性。
c#中宣告介面時,使用inte***ce關鍵字
修飾符 inte***ce 介面名稱:繼承的介面列表
{ 介面內容;
}
說明
1.宣告介面時,除inte***ce關鍵字和介面名稱外,其他都是可選項。
2.可以使用new、public、protected、internal和private等修飾符宣告介面,但介面成員必須是公共的。常見的訪問修飾符有:
(1)public 公有訪問。不受任何限制。
(2)private 私有訪問。只限於本類成員訪問,子類。
(3)protected 保護訪問。只限於本類和子類訪問。
(4)internal 內部訪問。只限於本專案內訪問,其他不能訪問。
(5)protected internal 內部保護訪問。只限於本專案或是子類訪問,其他不能訪問
介面定義:
inte***ce imyinte***ce//再三強調,介面中只能宣告,不能給定義賦值
string name
void showinfo();//不能給函式寫任何內容
}class program:imyinte***ce//program類繼承介面,需要對介面裡的內容全部進行定義,否則編譯就會不通過
set
}public string name
set
}public void showinfo()
}
主函式:
static void main(string args)
執行結果:
編號 姓名
tm c#3.5從入門到應用開發
mck 2018
上面的例項中只繼承了乙個介面,介面還可以多重繼承,使用多重繼承時,要繼承的介面間用逗號(,)分隔。
介面宣告:
inte***ce ipeople
string ***
}inte***ce istudent:ipeople
inte***ce iteacher:ipeople
class program:ipeople,istudent,iteacher
set
}public string ***
set
}public void teach()
public void study()
}
主函式:
static void main(string args)
執行結果:
mck man 老師
mck man 學生
顯式介面成員實現是使用介面名稱和乙個句點命名該類成員實現的。
inte***ce ipeople
string ***
}inte***ce istudent:ipeople
inte***ce iteacher:ipeople
class program:ipeople,istudent,iteacher
set
}public string ***
set
}public void teach()
void istudent.study()//顯式介面方法,只能是isudentd的物件使用
void iteacher.study()//顯式介面方法,只能是iteacher的物件使用
}
static void main(string args)
注意
1.顯式介面成員實現中不能包含訪問修飾符、abstract、virtual、override或static修飾符。
2.顯式介面成員屬於介面的成員,而不是類的成員,因此,不能使用類的物件直接訪問,只能通過介面物件訪問。如果乙個類不與具體的事物相聯絡,而只是表達一種抽象的概念,僅僅是作為其派生類的乙個基類,這樣的類就是抽象類。在抽象類中宣告方法時,如果加上abstract關鍵字,則為抽象方法。
抽象類和非抽象類的區別:
訪問修飾符 abstract class myclass
{ public int i;
public void method()
{}}
抽象方法就是在宣告方法時,加上abstract關鍵字,宣告抽象方法時需要注意:
抽象方法不提供任何實際實現,因此抽象方法的方法體只包含乙個分號;
當從抽象類派生乙個非抽象類時,需要在非抽象類中重寫抽象的方法,以提供具體實現,重寫抽象方法時使用override關鍵字。
例:宣告乙個抽象類,裡面有乙個抽象方法
public abstract class myclass
{ public abstract void method();//抽象方法
}
C 介面(抽象類)
介面描述了類的行為和功能,而不需要完成類的特定實現。c 介面是使用抽象類來實現的,抽象類與資料抽象互不混淆,資料抽象是乙個把實現細節與相關的資料分離開的概念。如果類中至少有乙個函式被宣告為純虛函式,則這個類就是抽象類。純虛函式是通過在宣告中使用 0 來指定的,如下所示 class box 設計抽象類...
C 介面(抽象類)
介面描述了類的行為和功能,而不需要完成類的特定實現。c 介面是使用抽象類來實現的,抽象類與資料抽象互不混淆,資料抽象是乙個把實現細節與相關的資料分離開的概念。如果類中至少有乙個函式被宣告為純虛函式,則這個類就是抽象類。純虛函式是通過在宣告中使用 0 來指定的,如下所示 class box 設計抽象類...
C 介面(抽象類)
設計抽象類 通常稱為 abc 的目的,是為了給其他類提供乙個可以繼承的適當的基類。抽象類不能被用於例項化物件,它只能作為介面使用。如果試圖例項化乙個抽象類的物件,會導致編譯錯誤。因此,如果乙個 abc 的子類需要被例項化,則必須實現每個虛函式,這也意味著 c 支援使用 abc 宣告介面。如果沒有在派...