久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

20151024

 昵稱10504424 2015-11-02

1:C#中的訪問(wèn)修飾符

public: 公共成員,完全公開(kāi),,沒(méi)有訪問(wèn)限制,。 

private: 私有的,只能在當(dāng)前類的內(nèi)部訪問(wèn),。

protected: 受保護(hù)的,,只能在當(dāng)前類的內(nèi)部以及該類的子類中訪問(wèn)。

internal: 只能在當(dāng)前項(xiàng)目中訪問(wèn),,在同一個(gè)項(xiàng)目中,,internal和public的權(quán)限是一樣的。

protected internal: protected + internal權(quán)限,。

1.1:能夠修飾類的訪問(wèn)修飾符只有兩個(gè): public / internal

1.2:接口中的成員不允許添加訪問(wèn)修飾符,,默認(rèn)是public

1.3:類中的成員不添加訪問(wèn)修飾符,默認(rèn)是private

1.4:命名空間的成員不添加訪問(wèn)修飾符,,默認(rèn)是internal

2:繼承(把這幾個(gè)類當(dāng)中重復(fù)的成員單獨(dú)的拿出來(lái)封裝成一個(gè)類,,作為這幾個(gè)類的父類)

我們可能會(huì)有一些類中,寫(xiě)一些重復(fù)的成員,,我們可以將這些重復(fù)的成員,,單獨(dú)的封裝到一個(gè)類中,作為這些類的父類,。

Student Teacher Driver 子類 / 派生類

Person         父類 / 基類

2.1:子類繼承了父類,,子類從父類繼承過(guò)來(lái)什么?

子類繼承了父類的屬性和方法,,但是子類并沒(méi)有繼承父類的私有字段,。

2.2: Q:子類有沒(méi)有繼承父類的構(gòu)造函數(shù)?

答:子類并沒(méi)有繼承父類的構(gòu)造函數(shù),,但是,,子類會(huì)默認(rèn)調(diào)用父類無(wú)參數(shù)的構(gòu)造函數(shù),創(chuàng)建父類對(duì)象,,讓子類可以使用父類的成員,。

解決方案:

1):在父類中重寫(xiě)一個(gè)無(wú)參數(shù)的構(gòu)造函數(shù),。

2):在子類中顯示的調(diào)用父類的構(gòu)造函數(shù),使用關(guān)鍵字:base()

2.3:繼承的特性

 1.繼承的單根性: 一個(gè)子類只能有一個(gè)父類

 2.繼承的傳遞性:

2.4:查看類圖

2.5:object是所有類的基類

2.6:new關(guān)鍵字

1):創(chuàng)建對(duì)象

2):隱藏從父類那里繼承過(guò)來(lái)的同名成員(子類和父類具有相同名稱的方法)

    隱藏的結(jié)果就是:子類調(diào)用不到父類的同名成員,。

2.7:里氏轉(zhuǎn)換

1:子類可以賦值給父類(如果有一個(gè)方法需要一個(gè)父類作為參數(shù),,我們可以傳遞一個(gè)子類對(duì)象)。

2:如果父類中裝的是子類對(duì)象,,則可以將這個(gè)父類強(qiáng)制轉(zhuǎn)換為子類對(duì)象,。

2.7.1:子類對(duì)象可以調(diào)用父類中的成員,但是父類對(duì)象永遠(yuǎn)都只能調(diào)用自己的成員,。

2.8:is 和 as

is:表示類型轉(zhuǎn)換,,如果能夠轉(zhuǎn)換成功,則返回一個(gè)true,,否則返回一個(gè)false,。

as:表示類型轉(zhuǎn)換,如果能夠轉(zhuǎn)換則返回對(duì)象的本身,,否則返回一個(gè)null,。

Ps: Q:代碼中出現(xiàn)Error:可訪問(wèn)性不一致的原因

答:子類的訪問(wèn)權(quán)限不能高于父類,會(huì)暴露父類的成員

3:多態(tài)

3.1:實(shí)現(xiàn)多態(tài)的方法:

1):虛方法

    將父類的方法標(biāo)記為虛方法,,使用關(guān)鍵字virtual,,這個(gè)函數(shù)可以被子類重新寫(xiě)一遍(override)

2):抽象類

    當(dāng)父類中的方法不知道如何去實(shí)現(xiàn)的時(shí)候,可以考慮將父類寫(xiě)成抽象類,,將方法寫(xiě)成抽象方法

3):接口

3.2:抽象類

1.抽象成員必須標(biāo)記為abstract,,并且不能有任何實(shí)現(xiàn)。

2.抽象成員必須在抽象類中,。

3.抽象類不能被實(shí)例化,。

4.子類繼承抽象類后,必須把父類中的所有抽象成員都重寫(xiě),。

  (除非子類也是一個(gè)抽象類,,則可以不重寫(xiě))

5.抽象成員的訪問(wèn)修飾符不能是private

6.在抽象類中可以包含實(shí)例成員。

   并且抽象類的實(shí)例成員可以不被子類實(shí)現(xiàn)

7.抽象類是有構(gòu)造函數(shù)的,。雖然不能被實(shí)例化。

8.如果父類的抽象方法中有參數(shù),,那么,。繼承這個(gè)抽象父類的子類在重寫(xiě)父類的方法的時(shí)候必須傳入對(duì)應(yīng)的參數(shù)。

   如果抽象父類的抽象方法中有返回值,,那么子類在重寫(xiě)這個(gè)抽象方法的時(shí)候,,也必須要有傳入返回值。

3.3:虛方法/抽象類/接口 何時(shí)用來(lái)實(shí)現(xiàn)多態(tài)

1:如果父類中的方法有默認(rèn)的實(shí)現(xiàn),,并且父類需要被實(shí)例化,,這時(shí)可以考慮將父類定義成一個(gè)普通類,,用虛方法來(lái)實(shí)現(xiàn)多態(tài)。

2:如果父類的方法沒(méi)有默認(rèn)實(shí)現(xiàn),,父類也不需要被實(shí)例化,,則可以將該類定義為抽象類。

3:幾個(gè)對(duì)象沒(méi)有共同的父類,,但是有共同的行為,。則可以使用接口實(shí)現(xiàn)

方法的簽名:方法的返回值和參數(shù)

3.4:虛方法和抽象方法的比較

 

3.5:靜態(tài)方法和實(shí)例方法(定義和調(diào)用)

3.6:設(shè)計(jì)模式

設(shè)計(jì)這個(gè)項(xiàng)目的一種方式 (簡(jiǎn)單工廠設(shè)計(jì)模式)

3.7:值類型在復(fù)制的時(shí)候,傳遞的是這個(gè)值得本身

      引用類型在復(fù)制的時(shí)候,,傳遞的是對(duì)這個(gè)對(duì)象的引用

3.8:序列化與反序列化

序列化:就是將對(duì)象轉(zhuǎn)換為二進(jìn)制

反序列化:就是將二進(jìn)制轉(zhuǎn)換為對(duì)象

作用:傳輸數(shù)據(jù)

[Serializable] 只有被Serializable標(biāo)記的類才能被序列化

 BinaryFormatter //序列化的類

序列化與發(fā)序列化

3.9:部分類 partial

3.10:密封類 sealed 不能被繼承,, 可以繼承別的普通類

ToString(); 是Object的虛方法,子類可以重寫(xiě)父類的虛方法

3.11:接口

[public] interface I..able

{

  成員;

}

不允許寫(xiě)具有方法體的函數(shù),,不允許有字段,,接口中允許有自動(dòng)屬性

------------------------------------------------------------------

接口是一種規(guī)范

1:只要一個(gè)類繼承了一個(gè)接口,這個(gè)類就必須實(shí)現(xiàn)這個(gè)接口中所有的成員

2:接口中的成員不能加"訪問(wèn)修飾符",,接口中的成員訪問(wèn)修飾符為public,,不能修改。

3:接口中只能有方法,,屬性,,索引器,事件,,不能有"字段"和構(gòu)造函數(shù),。

4:接口與接口之間可以繼承,并且可以多繼承,。

5:接口并不能去繼承一個(gè)類,,而類可以繼承接口(接口只能繼承于接口,而類既可以繼承接口,,也可以繼承類)

6:實(shí)現(xiàn)接口的子類必須實(shí)現(xiàn)該接口的全部成員,。

7:一個(gè)類可以同時(shí)繼承一個(gè)類并實(shí)現(xiàn)多個(gè)接口,如果一個(gè)子類同時(shí)繼承了父類A,,并且實(shí)現(xiàn)了接口IA,,那么語(yǔ)法上A必須寫(xiě)在IA的前面。

8:class MyClass:A,IA {} 因?yàn)轭愂菃卫^承的,。

9:顯示實(shí)現(xiàn)接口的目的:解決方法的重名問(wèn)題

   什么時(shí)候顯示的去實(shí)現(xiàn)接口:當(dāng)繼承的接口中的方法和參數(shù)一模一樣的時(shí)候,,要使用顯示的接口。

10:當(dāng)一個(gè)抽象類實(shí)現(xiàn)接口的時(shí)候,,需要子類去實(shí)現(xiàn)接口,。

Ps: 面試題:C#中的接口和類有什么異同。 

不同點(diǎn):

不能直接實(shí)例化接口,。

接口不包含方法的實(shí)現(xiàn),。

接口可以多繼承,,類只能單繼承。

類定義可在不同的源文件之間進(jìn)行拆分,。

相同點(diǎn):

接口,、類和結(jié)構(gòu)都可以從多個(gè)接口繼承。

接口類似于抽象基類:繼承接口的任何非抽象類型都必須實(shí)現(xiàn)接口的所有成員,。

接口和類都可以包含事件,、索引器、方法和屬性,。

基礎(chǔ)知識(shí):接口只能定義方法(只能定義行為,,不能定義實(shí)現(xiàn)也就是字段),因?yàn)槭录?、索引器,、屬性本質(zhì)上都是方法,所以接口中也可以定義事件,、索引器,、屬性。

Ps:面試題:abstract class和interface有什么區(qū)別? 

相同點(diǎn): 

都不能被直接實(shí)例化,,都可以通過(guò)繼承實(shí)現(xiàn)其抽象方法,。 

不同點(diǎn): 

接口支持多繼承;抽象類不能實(shí)現(xiàn)多繼承,。 

接口只能定義行為,;抽象類既可以定義行為,還可能提供實(shí)現(xiàn),。 

接口只包含方法(Method),、屬性(Property)、索引器(Index),、事件(Event)的簽名,,但不能定義字段和包含實(shí)現(xiàn)的方法;

抽象類可以定義字段,、屬性,、包含有實(shí)現(xiàn)的方法。  

接口可以作用于值類型(Struct)和引用類型(Class),;抽象類只能作用于引用類型,。例如,Struct就可以繼承接口,,而不能繼承類。

補(bǔ)充回答:講設(shè)計(jì)模式的時(shí)候SettingsProvider的例子,。

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多