※以下內容皆是新手撰寫,內容可能不完全正確
可愛顏文字30天的挑戰接近尾聲,再撐一下RRR(跟自己講的)
怎麼感覺這幾天的C#觀念都偏抽象,超難理解ㄉ嗚嗚嗚QQ
C#中的 介面(interfaces) 定義是所有繼承介面的類別必須遵守的語法合約(聽起來有夠抽象的);介面負責定義「做什麼」,而類別則負責定義「怎麼做」。
介面定義財產、方法及事件(以上皆為介面成員);介面只負責宣告成員,給衍生類別提供基本的架構,而定義成員的工作由衍生的類別來做。總結,介面扮演的是抽象的結構,不是真正實施、做事的那個。
※某種意義上,抽象類做的事情差不多,只是用於宣告方法較少的情況(由類基宣告並由衍生類別實施)。
※接在interface後面的介面名稱依慣例,皆用大寫i開頭(I) :D
介面的宣告用 interface關鍵字(interface keyword) ,跟類別的宣告很像。都到這邊了,應該對於各種不同東西的宣告有點概念了(記不起來也沒差XDD)。介面敘述預設的存取權限是public,格式像下面這樣的例子:
public interface IsomeInterface{
void someMember();
int someInteger();
double someDouble();
}
應用interface的方法:
using System;
namespace CubeApplication
{
public interface IsomeInterface
{
int someInteger();
}
public class Inter : IsomeInterface
{
private int yeet;
public Inter()
{
yeet = 0;
}
public Inter(int b)
{
yeet = b;
}
public int someInteger()
{
return yeet;
}
}
class CC
{
Inter x = new Inter(9487);
}
}
interface關鍵字範圍裡面的成員在後面都必須要實施,不然會出現error。
介面的部分先講到這邊,之後可能還會在更新的時候做一些補充。
下一篇的主題是每支程式都看得到的名稱空間(namespaces)。
參考資料:
(a) Tutorialspoint; C# - Interfaces
https://www.tutorialspoint.com/csharp/csharp_interfaces.htm
(b) Microsoft; 介面 (C#程式設計手冊)
https://docs.microsoft.com/zh-tw/dotnet/csharp/programming-guide/interfaces/