C# 筆記2:物件導向

來源:互聯網
上載者:User

22,一個疑問:

函數和方法的區別是什麼,聯絡是什嗎? 答:c語言等語言裡叫函數,物件導向編程,函數寫到類裡邊就叫做方法,函數可以直接調用,對象中的方法一般都有指標this指向它,但是有時一些方法實在不需要寫到類裡邊,所以物件導向的語言有了靜態方法。(一般說是基本上沒什麼區別,是一樣的東西) 23,物件導向的概述:在物件導向過程中,演算法與資料結構被看作是一個整體,稱作對象。對象=演算法+資料結構,程式=對象+對象+…… 物件導向的編程方式具有的特點:①:封裝;類是屬性和方法的集合。②:繼承;③:多態性;不同的類進行同一操作可以有不同的行為。 24,關於類聲明時常見的幾個修飾符:new:僅允許在嵌套類聲明時使用,表明類中隱藏了由基類中繼承而來的、與基類中同名的成員。public:不限制對類的訪問;protected:只能從其所在類和所在類的子類(衍生類別)進行訪問;internal:只有其所在類才能訪問;private:只有NET中的應用程式或庫才能訪問;abstract:抽象類別,不允許建立類的執行個體;sealed:密封類,不允許被繼承。 25,建構函式和解構函式:①對象 的生命週期從建構函式開始,以解構函式結束。如果一個類含有建構函式,在執行個體化該類的對象時就會調用,如果含有解構函式,則會在銷毀對象時調用。建構函式的名字和類名相同,解構函式和建構函式的名字相同。但解構函式要在名字前加一個波浪號~。當退出含有該對象的成員時,解構函式將自動釋放這個對象所佔用的記憶體空間。②一個類中只能有一個解構函式,並且無法調用解構函式,它是被自動調用的。 26,類和對象的關係:類是一種抽象的資料類型,具相同,相似結構,操作和約束規則的對象組成的集合。對象是類的執行個體。 27, 類的繼承protected,只有子類(衍生類別)才能訪問protected成員,基類和外部代碼都不能訪問protected成員。基類還可以定義為抽象類別。抽象類別不能直接執行個體化,要使用抽象類別就必須繼承這個類,然後再執行個體化。 28,類的多態①多態使得子類的執行個體可以直接賦予基類的變數(這裡不需要進行強制類型轉換),然後直接就可以通過這個變數調用子類的方法。②C#中,類的多態性是通過在子類中重載基類的虛方法或函數成員來實現的。③還可以使用新的派產生員替換基類的成員,這時需要使用new關鍵字。如果基類定義了一個新方法,欄位或屬性,則new關鍵字用於在子類中建立該方法,欄位或屬性的新定義。new關鍵字放置在要替換的類成員的傳回型別之前。 29,對於多態要注意的:①virtual修飾符不能與private,static,abstract或者override修飾符同時使用;②override修飾符不能與new static或者virtual修飾符同時使用,並且重寫方法只能用於重寫基類中 的虛方法。③C#中,繼承,虛方法和重寫方法組合在一起才能實現多態性。 30,有關介面①類和結構可以像類繼承基類或結構一樣從介面繼承,但是可以繼承多個介面。②當類和結構繼承介面時,它繼承成員定義但不繼承實現。若要實現介面成員,類中的對應成員必須是公用的,非靜態,並且與介面成員具有相同的名稱和簽名。 31,抽象類別與抽象方法

如果一個類不與具體的事物相聯絡,而只是表達一種抽象的概念,僅僅是作為其衍生類別的一個類,這樣的類就是抽象類別,在抽象類別中聲明方法時,如果加上abstract關鍵字,則為抽象方法。 32,抽象類別抽象類別主要用來提供多個衍生類別可共用的基類的公用定義,它與非抽象類別的主要區別如下:□抽象類別不能直接執行個體化;□抽象類別中可以包含抽象成員,但非抽象類別中不可以。□抽象類別不能被密封。□抽象方法必須在抽象類別中。 33,抽象類別和介面的區別:①它們的衍生類別只能繼承一個基類,即只能直接繼承一個抽象類別,但可以繼承任意多個介面。②抽象類別中可以定義成員的實現,但介面中不可以;③抽象類別中可以包含欄位、建構函式、解構函式、靜態成員或者變數等,介面中不可以。④抽象類別中的成員可以是私人的、受保護的、內部的或者受保護的內部成員,但介面中的成員必須是公用的。□抽象類別和介面這兩種類型用於完全不同的目的。抽象類別主要用作對象系列的基類,共用某些主要特性,例如共同的目的和結構。介面則主要用於類。 34,在密封類中不能聲明受保護的成員或虛成員,因為受保護的成員只能從衍生類別進行訪問,而虛成員只能從衍生類別中重寫。由於密封類的不可繼承性,因此密封類不能聲明為抽象的,即sealed修飾符不能與abstract修飾符同時使用。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.