最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

C#知識梳理——方法(2)虛方法、重寫方法、抽象方法(and接口)、擴展方法

2023-08-05 19:49 作者:羞澀男孩小小明  | 我要投稿

虛方法(and重寫方法):

????作用:因為在方法調(diào)用的時候會有對于這個方法的用法有需求,但是方法的條件不符合應用的需求。所以需要重寫。也就是說多用于重寫父類方法。換言之,就是子類和父類的具體實現(xiàn)方法不同的時候,需要進行對虛方法的重寫。(允許子類或者派生類,進行重新,實現(xiàn)不一樣的功能)

?????? 特點:1、關(guān)鍵詞:virtual 2、子類和父類的返回值和參數(shù)也是一樣的3、好維護(原生代碼不需要進行更改)

?????? 關(guān)鍵點:重寫與重載的不同是,重載重點在參數(shù)類型、個數(shù)、順序不同的情況下,引用同一種方法來做不同的事情,本質(zhì)上重載是同一個方法,只不過入口不同。而重寫實就是不同的方法,但是入口的樣子一樣。 與后邊的抽象方法、接口的對應的形象的解釋?,F(xiàn)在有一戶人家已經(jīng)有一個房子了,發(fā)現(xiàn)不夠用,于是他們又建造了另一個相同外觀的房子,以作他用,但是還是同樣一戶人家來用。

子類繼承了父類虛方法 對其進行重寫

抽象方法:

?????? 用法:規(guī)范好讓子類去實現(xiàn)。強制性一定要實現(xiàn)(因為有時候?qū)懚嗔藭泴懢唧w實現(xiàn))。

?????? 特點:1、抽象方法一定要寫在抽象類里 2、不能實例化 3、不帶方法體

??? 關(guān)鍵點:1、抽象方法,像是一種“規(guī)范”,用形象的話來說的話,就是給你一入口,規(guī)定一定要有一個門,門打開后,屋子內(nèi)部是什么樣的,屋子是怎么建的,都是由你(子類)來決定的,不過這個房子只有一個房間。重寫的過程就是建這個房子的過程。

與接口的區(qū)別和使用:區(qū)別:1、抽象類——單繼承(只能繼承一個父類) 接口——可以多繼承 所以,接口就像是他給了你一個房間號,你可以通過多個房間號進入到不同的房間里,但是進入房子的門還是那一個門。 重寫的過程就是就是建立這個房子中不同房間的過程。2、抽象類里可以寫其他方法,而接口里只能寫規(guī)范。也就是說,抽象類是就是一個有煙證的超市,里可以賣煙(抽象方法),也可賣冰棍,賣生活用品(其他方法);而接口就是醫(yī)院,里邊的規(guī)范是病人,病人可以是大老板,也可是掃大街的(規(guī)范可以不同),但是病人就只是病人,現(xiàn)在有個食客(虛方法)想去醫(yī)院里吃火鍋

(具體實現(xiàn)),那這是不被允許的。

使用場合:抽象類一般用于常用不會經(jīng)常改動、抽象范圍大一點的事件。

抽象方法在被繼承時,子類中一定要先實現(xiàn)這個抽象類
抽象類是類,接口是接口 但是實際上,它們都是一個cs文件罷了
抽象類中,可以寫其他方法,并非僅限于抽象方法
接口可以繼承多個類
接口和抽象類都不可以直接被實例化,要通過子類

擴展方法ExtendMethod:

?????? 定義:在不修改原生代碼的情況下進行擴展(重要)

?????? 用法:在非泛型靜態(tài)類中->定義靜態(tài)方法->拓展方法

?????? 使用場合:1、調(diào)用密封類中的對象,屬性或者方法進行拓展 2、擴展接口 3、再Linq鏈式編程 等等

?????? 關(guān)鍵:抽象方法和接口我都給出了形象的解釋,以便于理解。那么擴展方法也需要來講一講。它們應當是不同角度的問題。抽象方法在抽象類里給出一個規(guī)范,便于子類進行對某一個類的繼承后的重寫;接口給出規(guī)范,便于子類對某一個或者多個接口中規(guī)范的在此子類中的創(chuàng)建。而擴展方法則不然,它在于對原生父類的擴展,取的是參數(shù)。前兩者,一個是取入口門,一個是取房間門牌,門規(guī)定了誰可以進,進多少人,房間門牌規(guī)定了誰可以進哪個房間。但是它們的最終指向都只有一個地方,某個屋子或者某個房間。而擴展則不同,它是取來這樣的信息:有多少人,這些人是誰,他們能做什么,而并不關(guān)心去這些人要去哪個房間。于是乎,擴展就可以決定這些人的動作,可以指定某些人去作某些動作(取參數(shù),規(guī)定全新的方法的實現(xiàn)),可以指定某些人去做他們會的動作來達成一定的目的(取參數(shù)和方法,來獲得新的方法的實現(xiàn))。規(guī)定好以后,房子還是那所房子,但是我們已經(jīng)可以按照這個房子的樣子來建一所房子(實例化,其實更準確的描述,就是不管是抽象、接口都是用來確定圖紙的,實例化后才是真正的把房子建造出來),或者說,按照圖紙建造出這個房子,然后通過對這個房子的一些按鈕進行操作(調(diào)用擴展的方法、屬性等),來讓某些人進某個房間或者去某個地方做某些事(輸入?yún)?shù),進行操作),而這些事情也許是房子最初設計中不存在的事情,就好比本身醫(yī)院就是一個億元,讓病人看病的地方,現(xiàn)在我們可以規(guī)定某些病人可以在醫(yī)院里蹦迪,因為我們在醫(yī)院里制造了閃亮的燈球,而我們也允許病人在燈球下蹦迪。

密封類不能直接繼承
擴展的流程以及擴展常用的方法
擴展方法是帶向下箭頭的 實例化后可以看到
擴展后的調(diào)用方法
擴展的接口被集成后,實例化的樣子
擴展接口的流程:定義接口——>接口擴展(靜態(tài)類——>靜態(tài)方法——>靜態(tài)方法參數(shù)中調(diào)用this實體及參數(shù),給出實現(xiàn))——>類A繼承接口——>類A中調(diào)用擴展方法
運行結(jié)果


方法梳理小結(jié):上述方法的總結(jié)都是很簡單的一些梳理 但是很有用 不過寫的算是筆記,很簡單 主要還是為了我自己今后可以看懂 也許這C#一系列真的做下去的話,可以錄制教程發(fā)出來,一方面做個記錄 再一方面后邊再次進行復習

C#知識梳理——方法(2)虛方法、重寫方法、抽象方法(and接口)、擴展方法的評論 (共 條)

分享到微博請遵守國家法律
临安市| 思南县| 潜江市| 木里| 大关县| 遵化市| 梧州市| 久治县| 永善县| 通许县| 罗甸县| 龙口市| 潜山县| 昌都县| 赫章县| 象州县| 阳山县| 晋宁县| 桂东县| 岳普湖县| 墨江| 工布江达县| 佛山市| 阿荣旗| 民权县| 泸西县| 万州区| 赣榆县| 万盛区| 庆城县| 封开县| 手游| 东平县| 宁武县| 兴化市| 磐石市| 玉溪市| 乐陵市| 当雄县| 航空| 长汀县|