C#進階(一)物件導向

來源:互聯網
上載者:User

 

對於物件導向,有N多大師寫過N多文字。我也不敢妄言。就簡單說說自己的認識。

我們先來看看“對象”,什麼是對象?我們在現實生活中所能看到的一切都可以稱為對象。比如,企業、醫院、寵物、植物、人。。。等等。在物件導向編程中,對象往往被當作一個類,類有屬性和行為。我們以醫院為例來說,醫院有醫生,有護士等,在醫院可以做CT,B超等。在物件導向編程中,我們定義一個hospital 類,其有屬性(醫生,護士)和行為(做CT,做B超)。這就是一個簡單的物件導向編程。

       其實,我們不光可以把醫院做為一個類,我們還可以把醫生做為一個類,醫生有其屬性(年齡,姓名,性別等)和其行為(檢查病人,開處方,做手術等)。甚至我們可以把兒科醫生定義為一個類,同樣,骨科,外科,內科等醫生,我們都可以分別定義為一個類,但這些類都具有同樣的屬性(年齡,姓名,性別等)甚至行為,難道每個類我們都要依次定義這些屬性嗎?答案是否定的。

       我們可以定義一個醫生類,定義這些共有屬性和行為。兒科醫生,骨科醫生等都繼承自這個醫生類,這樣就具有了醫生類的所有屬性和行為。這在物件導向編程中被稱為繼承。

       我們再來看一個例子。

       人,有白人,黑人,黃種人等。人有年齡,性別,會吃飯。狗有白毛的狗,有黑色的狗等,狗有年齡,性別,會吃飯,咬人。

       在這種情況下,我們可以把人定義為一個基類(有屬性 年齡,性別和行為吃飯等),黑人,白人,黃種人都繼承自“人”這個類。我們再“狗”定義為一個類(有屬性 年齡,性別和行為吃飯,咬人等),白狗,黑狗都繼承於這個“狗”類。

       在這裡,我們可以看到,狗所具有的一些屬性在“人”這個類裡面已經具有了,我們沒有必要重新在“狗”類中定義的,“狗”類中只需要定義其獨特的行為或屬性,比如:咬人。而黑狗,白狗等繼承自“人”和“狗”這兩個類。這樣就不存在重複定義的問題了。

       但在C#和Java中都不支援多重繼承。那怎麼辦呢?這時候就誕生了一個“介面”的概念。一個類可以實現多個介面。在上例中,可以定義一個“動物”的介面(人也是一種動物嘛),在介面中定義人和狗共有的年齡,性別,吃飯等屬性和行為。再定義一個“人”這樣的基類,並實現這個介面,然後白人,黑人等類再繼承“人”這個基類就可以了。狗也同理。

       呵呵。就簡單的介紹這麼些吧。可能說的不清楚,大家去google一下,有很多介紹物件導向的文字。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.