国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C#學(xué)習(xí)系列之虛方法和多態(tài)

這篇具有很好參考價(jià)值的文章主要介紹了C#學(xué)習(xí)系列之虛方法和多態(tài)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


啰嗦

基礎(chǔ)學(xué)習(xí)。


設(shè)計(jì)原則(六大類其中之一)

**依賴倒置原則:**依賴抽象類,不依賴具體類。(減少耦合)
抽象類形容為父類,而子類是父類的具體類。

基類的引用

派生類包含基類和派生類,用基類引用指向派生類。通過指向派生類的基類引用訪問派生類中的基類部分。

使用

將Child child改成Parent child也是可以的,如果出現(xiàn)調(diào)用同名函數(shù)的話,調(diào)用就是調(diào)用基類中的函數(shù),而不是派生類中的函數(shù)。兩者根據(jù)實(shí)際使用而有所不同。

public class parent
{
	public string name;
}
public class child:parent//相當(dāng)于child繼承于parent
{
}
class program
{
	static void Main(string[] args)
	{
		Parent child=new Child();//將Child child改成Parent child也是可以的
		child.name="lily";//擁有父類的基礎(chǔ)
	}
}

共性與差異

共性:派生類都是基于基類進(jìn)行派生的。那么多個(gè)由同一個(gè)基類做的派生類會(huì)有共同的特性。
差異:派生類與派生類之間會(huì)存在不同的差異。

虛方法和多態(tài)的武器

虛方法:使用virtual的方法。基類的虛方法可在派生類使用override重寫。
多態(tài):通過指向派生類的基類引用,調(diào)用虛函數(shù),會(huì)根據(jù)引用所指向派生類的實(shí)際類型,調(diào)用派生類中的同名重寫函數(shù)。

使用

dog和cat使用到了override進(jìn)行重寫,所以不會(huì)用到基類的虛方法,并且兩者的speak也會(huì)有所不同。

class pet
{
	virtual public void speak();
}
class dog
{
	override public void speak();//重寫基類的虛方法
}
class cat
{
	override public void speak();//重寫基類的虛方法
}
pet.speak();//調(diào)用基類的
dog.speak();//調(diào)用派生類

其他

  • 重寫虛方法必須具有相同的可訪問性,且基類方法不能是private(派生就無法訪問)
  • 不能重寫static方法或非虛方法
  • 方法、屬性、索引器、事件都可以聲明為virtual或override

總結(jié)

學(xué)習(xí)記錄。
https://www.imooc.com/video/14226文章來源地址http://www.zghlxwxcb.cn/news/detail-739228.html

到了這里,關(guān)于C#學(xué)習(xí)系列之虛方法和多態(tài)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Java學(xué)習(xí)筆記---多態(tài)綜合練習(xí)

    Java學(xué)習(xí)筆記---多態(tài)綜合練習(xí)

    運(yùn)行結(jié)果:

    2024年02月09日
    瀏覽(14)
  • java基礎(chǔ)語法-package構(gòu)造方法-繼承-多態(tài)

    java中的包 - package 包的主要功能: 包的基本語法 在一個(gè)文件中,可以沒有包,或者一個(gè)包。但是不能出現(xiàn)兩個(gè)包。 包名一般小寫,是為了區(qū)分類名,類名一般大寫 java中存在不同包相同類的名稱,我們可以使用包名進(jìn)行區(qū)分 一般情況下,在使用類的情況下,我們都使用類的

    2024年02月05日
    瀏覽(24)
  • 【從零開始學(xué)習(xí)JAVA | 第十五篇】 多態(tài)

    【從零開始學(xué)習(xí)JAVA | 第十五篇】 多態(tài)

    本篇我們來解釋一下什么是多態(tài)關(guān)系,多態(tài)關(guān)系屬于面向?qū)ο笕筇卣鞯淖詈笠粋€(gè),可以說面向?qū)ο蟮闹攸c(diǎn)就在多態(tài),因此我們要學(xué)好面向?qū)ο缶幊趟枷耄鸵獙W(xué)好多態(tài)。 ????????Java中的多態(tài)是指 同一類對象在不同情況下可能表現(xiàn)出不同的形態(tài)和行為。 它包括了 方法重

    2024年02月10日
    瀏覽(22)
  • 從零開始學(xué)習(xí) Java:簡單易懂的入門指南之多態(tài)(十)

    從零開始學(xué)習(xí) Java:簡單易懂的入門指南之多態(tài)(十)

    多態(tài)是繼封裝、繼承之后,面向?qū)ο蟮牡谌筇匦浴?多態(tài)是出現(xiàn)在繼承或者實(shí)現(xiàn)關(guān)系中的 。 多態(tài)體現(xiàn)的格式 : 多態(tài)的前提 :有繼承關(guān)系,子類對象是可以賦值給父類類型的變量。例如Animal是一個(gè)動(dòng)物類型,而Cat是一個(gè)貓類型。Cat繼承了Animal,Cat對象也是Animal類型,自然可

    2024年02月12日
    瀏覽(98)
  • 01 java 學(xué)習(xí) 數(shù)據(jù)類型、基礎(chǔ)語法、封裝、繼承、多態(tài)、接口、泛型、異常等

    01 java 學(xué)習(xí) 數(shù)據(jù)類型、基礎(chǔ)語法、封裝、繼承、多態(tài)、接口、泛型、異常等

    目錄 環(huán)境搭建和基礎(chǔ)知識(shí) ?什么是JRE: 什么是JDK: 基礎(chǔ)數(shù)據(jù)類型 ?分支選擇if else switch和c一毛一樣 for和while循環(huán)還有數(shù)組基本和c一樣 封裝 函數(shù)調(diào)用、傳參、命名規(guī)范、數(shù)組新命名規(guī)范 java輸入Scanner scanner = new Scanner(System.in); 類的創(chuàng)建和使用以及封裝修飾符 ?構(gòu)造方法:含義、

    2024年02月11日
    瀏覽(46)
  • [設(shè)計(jì)模式Java實(shí)現(xiàn)附plantuml源碼~創(chuàng)建型] 多態(tài)工廠的實(shí)現(xiàn)——工廠方法模式

    [設(shè)計(jì)模式Java實(shí)現(xiàn)附plantuml源碼~創(chuàng)建型] 多態(tài)工廠的實(shí)現(xiàn)——工廠方法模式

    前言: 為什么之前寫過Golang 版的設(shè)計(jì)模式,還在重新寫 Java 版? 答:因?yàn)閷τ谖叶裕?dāng)然也希望對正在學(xué)習(xí)的大伙有幫助。Java作為一門純面向?qū)ο蟮恼Z言,更適合用于學(xué)習(xí)設(shè)計(jì)模式。 為什么類圖要附上uml 因?yàn)楹芏嗳藢W(xué)習(xí)有做筆記的習(xí)慣,如果單純的只是放一張圖片,那

    2024年01月21日
    瀏覽(23)
  • c#多態(tài)(override)的使用

    方法重寫(override):多態(tài),通過父類類型對象,調(diào)用子類當(dāng)中對應(yīng)方法的實(shí)現(xiàn)。 細(xì)節(jié):子類當(dāng)中的override方法會(huì)“抹殺”父類當(dāng)中對應(yīng)virtual方法 不使用多態(tài)時(shí),父類調(diào)用子類方法時(shí),會(huì)調(diào)用父類的方法 main方法通過里氏替換調(diào)用子類shout方法 那如何可以,通過父類調(diào)用子類的

    2024年02月10日
    瀏覽(18)
  • 【C# 基礎(chǔ)精講】繼承、封裝、多態(tài)

    【C# 基礎(chǔ)精講】繼承、封裝、多態(tài)

    繼承(Inheritance)、封裝(Encapsulation)和多態(tài)(Polymorphism)是面向?qū)ο缶幊讨械娜蠛诵母拍?,它們?gòu)成了面向?qū)ο缶幊痰幕A(chǔ),有助于創(chuàng)建更加模塊化、可擴(kuò)展和可維護(hù)的代碼。這三個(gè)概念在C#及其他面向?qū)ο缶幊陶Z言中廣泛應(yīng)用,本文將詳細(xì)解釋這三個(gè)概念的含義、特點(diǎn)

    2024年02月12日
    瀏覽(24)
  • C#封裝、繼承和多態(tài)的用法

    C#封裝、繼承和多態(tài)的用法

    大家好,今天我們將來詳細(xì)探討一下C#中封裝、繼承和多態(tài)的用法。作為C#的三大面向?qū)ο蟮奶匦?,這些概念對于程序員來說非常重要,因此我們將對每個(gè)特性進(jìn)行詳細(xì)的說明,并提供相應(yīng)的示例代碼。 封裝是指將數(shù)據(jù)和方法包裹在類中,同時(shí)通過訪問修飾符來控制對這些數(shù)

    2024年02月06日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包