標籤:函數 使用 main 構造 抽象類別 console 不包含 直接 聲明
介面
介面類似於抽象基類,繼承介面的任何非抽象類別都必須實現介面的所有成員
不能直接執行個體化類
介面可以包含時間,索引器,方法和屬性
介面不包含方法的實現
類和結構可以從多個介面繼承
介面自身可以從多個介面繼承
介面修飾符:new、public、protected、internal、private,但是介面成員必須是公用
2.
//介面1
interface Interface1
{
int Add();
}
//介面2
interface Interface2
{
int Add();
}
//類1
class Class1:Interface1,Interface2
{
//public int Add()
// {
// return 1 + 2;
// }
//顯示介面成員實現
int Interface1.Add()
{
return 3 + 4;
}
int Interface2.Add()
{
return 5 + 6;
}
}
//main函數
Class1 cl = new Class1(); //執行個體化介面繼承類的對象
int i = cl.Add();
Interface1 i1 = cl; //使用介面繼承類的對象執行個體化介面
Interface2 i2 = cl;
//Console.WriteLine(cl.Add()); //38 //如果類中為實現方法,此部分就會報錯
Console.WriteLine(i1.Add()); //7
Console.WriteLine(i2.Add()); //11
ps:顯示介面成員實現中不能包含存取修飾詞、abstract、virtual、override或static修飾符
顯示介面成員屬於介面的成員,而不是類的成員,因此,不能 使用類對象直接存取
2.抽象類別
a.抽象類別不能直接執行個體化
b.抽象類別中可以包含抽象成員,但非抽象類別中不可以
c.抽象類別不能被密封
3.抽象方法:
a.抽象方法必須聲明在抽象類別中
b.聲明抽象方法時,不能使用virtual、static、private修飾符
ps:抽象方法聲明引入了一個新的方法,但不提供該方法的實現,由於抽象方法不提供方法實現,所以,抽象方法只包含一個分號
抽象類別和介面:
衍生類別只能繼承一個抽象類別,可以繼承多個介面
抽象類別中可以定義成員的實現,但介面中不可以
抽象類別包括欄位、建構函式、解構函式、靜態成員或者常量等,介面中不可以
抽象類別中的成員可以是私人的,受保護的,內部的或受保護的內部成員,但介面的成員必須是公用的
抽象類別主要用作對象系列的基類,共用某些主要特性,如共同的目的和結構
介面主要用於類,這些類在基礎水平上有所不同,但仍可以完成某些相同的任務
c# 介面