C 白話C 介面

2021-04-28 23:08:40 字數 2256 閱讀 5780

白話c#:介面

介面是體現物件導向程式設計思想優越性的一件利器,為什麼這麼說呢?首先我們來看,介面是為繼承而存在的,如果沒有繼承,那就自然不需要介面了,既然有 繼承,那就需要把可能被多個類所繼承的一些公共部分抽象出來,介面封裝的就是這些公共的行為規範(方法定義),類可以通過繼承多個介面來豐富自己的行為機 制,但是在c#中,類是不可以繼承多個類的。c#最顯著的特點就是極大地提高了程式的開發效率和維護效率,所以對於繼承多個類這種容易引起二義性的機制是 深惡痛絕的。

我們都是由學生時代一路走過來的,所以我想借用學生時代的那些行為規範來作為現實生活中的介面的例子。

讀小學的時候,我們至少會有兩套行為規範:小學生行為規範和少先隊員行為規範。首先我們都得遵守小學生行為規範,其次如果是少先隊員,就還得遵守少先隊員行為規範。我們對於這兩套行為規範不列舉太多細節規則,每套一條就夠了,首先,作為少先隊員,過馬路時要先看紅綠燈:

1:

inte***ce

ipupilrule

2:

在ipupilerule中,我們定義了「過馬路看紅綠燈」這樣的行為規範,它其實就是乙個函式宣告,定義了函式名、返回值型別以及引數型別等信 息,但是並沒有函式體。對,介面中只能有函式定義這樣的指導性原則,不允許存在函式體,至於具體的實現細節,那就「具體問題具體分析」吧。接下來我們再來 定義少先隊員行為規範,也不列舉太多細則,一條足矣,少先隊員不能抽菸:

1:

inte***ce

iyoungpioneerrule

2:

同樣的,只有函式宣告沒有實現細節,因為行為守則這樣的東西只能告訴你作為一名光榮的少先隊員是絕對不能抽菸的,它不會也不能面面俱到地告訴你假如 你叔叔阿姨給你遞菸應該如何謝絕,假如你爸爸教你抽菸應該如何拒絕,另外假如那些輟學的壞孩子強迫你抽菸又該如何反抗等等。廢話不多說,否則真成了「提供 函式體的介面」了。

既然介面是不提供函式實現細節的,那麼當乙個小學生需要橫過馬路的時候,就只能靠他自己來完成具體的邏輯實現了:

1:

public

class

pupil : ipupilrule

2:

20:

}

21:

}

接下來,少先隊員出場了。首先我們來分析一下這個場景,少先隊員是需要遵守少先隊員行為規範的小學生。由此可見,少先隊員需要實現前面提到的兩種行 為規範中的所有規定,這也就體現了介面的好處,可以實現多重繼承。當然,在本文所用的例子當中,少先隊員大可不必重新繼承並實現ipupilrule介面 了,他既然是一名小學生,那就可以繼承pupil這個類,而且他並不需要改變pupil中對小學生行為規範的具體實現細節,他只需要自己實現少先隊員行為 規範中的規定就行了。

1:

public

class

youngpioneer : pupil, iyoungpioneerrule

2:

10:

}

另外,介面也是可以繼承介面的,並且可以多重繼承。我們假設有乙個向陽小學,這個學校還有自己的校規,校規內容不多,主要是要求學生要嚴格遵守小學生行為規範和少先隊員行為規範,並且都要會唱校歌。

1:

inte***ce

ixiangyangschoolrule : ipupilrule, iyoungpioneerrule

2:

因此這套校規編寫起來倒不麻煩,繼承了兩套現成的行為規範並且增加一點兒自己的要求就行了。向陽小學的每一位學生都得遵守這套校規:

1:

public

class

xiangyangpupil : ixiangyangschoolrule

2:

7:
8:

public

void

crosstheroad(int

trafficlightindex)

9:

12:
13:

public

void

nosmoke()

14:

17:

}

通過上面的介紹,您大概已經對如何使用介面有了一些初步的認識,當面對實際問題的時候,只要合理地分析和設計,介面一定會為我們的開發工作帶來很大的便利!

C 白話C 反射

白話c 反射 反射是一種晚繫結,它可以被開發者用來設計出更具靈活性的 而代價則是花費更多的系統資源開銷使得應用程式可以在執行時獲取一些未知資訊。說白了,在編寫 的時候,開發者可能還不知道或不能確定一些物件的資訊,於是把決定權交給 本身,將來在需要的時候由 自己去獲取和判斷這些 資訊並作出相應的反應。...

白話C 反射機制

反射是一種晚繫結,它可以被開發者用來設計出更具靈活性的 而代價則是花費更多的系統資源開銷使得應用程式可以在執行時獲取一些未知資訊。說白了,在編寫 的時候,開發者可能還不知道或不能確定一些物件的資訊,於是把決定權交給 本身,將來在需要的時候由 自己去獲取和判斷這些資訊並作出相應的反應。這樣的方式固然可...

白話C 多執行緒

跟前幾篇的風格一樣,我會在開篇的時候舉乙個現實生活中的例子,通過這個例子來對映一些晦澀枯燥的計算機程式設計專業知識,在讓讀者朋友很好地理解理論概念的同時,又避免了閱讀教科書時的枯燥感覺。這次我要舉的例子是公司。不一定是it公司,盡量和程式設計領域遠一點兒吧,那就假設是一家搬家公司吧。假如我們把公司看...