最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#中多態(tài)性的實(shí)現(xiàn)

 更新時(shí)間:2020年02月04日 10:37:05   作者:LLLLL__  
這篇文章主要介紹了C#中多態(tài)性的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

C#語言三大特性:繼承,封裝,多態(tài)

一:多態(tài)性

多態(tài)是指一個(gè)行為具有多個(gè)不同表現(xiàn)形式的能力,在C#中通過多態(tài)性的檢測(cè)時(shí)機(jī)可以分為靜態(tài)多態(tài)性和動(dòng)態(tài)多態(tài)性
靜態(tài)多態(tài)性:函數(shù)重載和運(yùn)算符重載
動(dòng)態(tài)多態(tài)性:抽象方法、重寫方法、隱藏方法

二:函數(shù)重載(overlode)

——函數(shù)名必須相同

——函數(shù)參數(shù)類型不同

——函數(shù)參數(shù)個(gè)數(shù)不同

——函數(shù)參數(shù)順序不同

三:抽象(abstract)

——包含抽象函數(shù)的類,類也必須定義為抽象的

——抽象函數(shù)只有定義沒有函數(shù)體,并且必須定義為public

——抽象類中可以包含普通函數(shù)和抽象函數(shù)

——抽象類不能實(shí)例化,不能使用抽象類去構(gòu)造對(duì)象,但是可以使用抽象類去聲明對(duì)象

可以在類前添加sealed關(guān)鍵字,使類變?yōu)槊芊忸?,密封類有以下特點(diǎn):
——不能被繼承,所以密封類中不能定義虛方法和抽象方法,抽象類不能定義為sealed
——重寫的方法可以聲明為密封方法,表示該方法不能被子類重寫

四:虛方法(virtual)

抽象方法與虛方法區(qū)別:
——抽象函數(shù)不能有函數(shù)體,虛函數(shù)必須有函數(shù)體
——當(dāng)繼承了一個(gè)抽象類時(shí),必須去實(shí)現(xiàn)抽象函數(shù),抽象函數(shù)也只能在子類中去實(shí)現(xiàn)。但是虛函數(shù)可以在基類實(shí)現(xiàn)也可以在子類重寫
——抽象函數(shù)必須在抽象類中,虛函數(shù)不必須在抽象類中

五:重寫方法(override)與隱藏方法(new)

——隱藏方法的調(diào)用(用什么類型來聲明,在調(diào)用方法的時(shí)候就會(huì)調(diào)用什么類型的方法)
——重寫方法的調(diào)用(用什么類型來構(gòu)造,在調(diào)用方法的時(shí)候就會(huì)調(diào)用什么類型的方法)

class Enemy
{
 public void Move()
 {
  Console.WriteLine("Enemy Move");
 }
 
 public virtual void Attack()
 {
  Console.WriteLine("Enemy Attack");
 }
}
 
class Boss : Enemy
{
 public override void Attack()
 {
  Console.WriteLine("Boss Attack");
 }
 
 public new void Move()
 {
  Console.WriteLine("Boss Move");
 }
}
 
class MainClass
{
 static void Main(string[] args)
 {
  //=====隱藏方法的調(diào)用(用什么類型來聲明,在調(diào)用方法的時(shí)候就會(huì)調(diào)用什么類型的方法)
  Boss oneEnemy = new Boss();
  oneEnemy.Move(); //調(diào)用的是隱藏方法,用子類的聲明來調(diào)用的,調(diào)用的就是子類的Move
  Enemy twoEnemy = new Boss();
  twoEnemy.Move(); //調(diào)用的隱藏方法,用父類的聲明來調(diào)用的,調(diào)用的就是父類的Move方法
 
  //=====虛方法的調(diào)用(用什么類型來構(gòu)造,在調(diào)用方法的時(shí)候就會(huì)調(diào)用什么類型的方法)
  Enemy threeEnemy = new Enemy();
  threeEnemy.Attac(); //調(diào)用虛方法,用父類來實(shí)例化的,所以調(diào)用的是父類的Attac方法
  Enemy fourEnemy = new Boss();
  fourEnemy.Attac(); //調(diào)用虛方法,用子類來實(shí)例化的,所以調(diào)用的就是子類(Boss)的Attac方法
 }
}

virtual與new的原理:https://www.runoob.com/w3cnote/csharp-polymorphism2.html

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • c#?定期重啟程序操作的實(shí)現(xiàn)

    c#?定期重啟程序操作的實(shí)現(xiàn)

    本文主要介紹了c#?定期重啟程序操作的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • C#判斷字符是否為漢字的三種方法分享

    C#判斷字符是否為漢字的三種方法分享

    判斷一個(gè)字符是不是漢字通常有三種方法,第一種用 ASCII 碼判斷,第二種用漢字的 UNICODE 編碼范圍判 斷,第三種用正則表達(dá)式判斷,以下是具體方法
    2014-01-01
  • 詳解C#如何使用讀寫鎖控制多線程寫入

    詳解C#如何使用讀寫鎖控制多線程寫入

    這篇文章主要為大家詳細(xì)介紹了C#如何使用讀寫鎖控制多線程寫入,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • c# 如何使用 My 命名空間

    c# 如何使用 My 命名空間

    這篇文章主要介紹了c# 如何使用 My 命名空間,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2020-10-10
  • Unity實(shí)現(xiàn)切割圖集工具

    Unity實(shí)現(xiàn)切割圖集工具

    這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)切割圖集工具,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • C#中List和SortedList的簡(jiǎn)介

    C#中List和SortedList的簡(jiǎn)介

    今天小編就為大家分享一篇關(guān)于C#中List和SortedList的簡(jiǎn)介,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • C# Winform按鈕中圖片實(shí)現(xiàn)左圖右字的效果實(shí)例

    C# Winform按鈕中圖片實(shí)現(xiàn)左圖右字的效果實(shí)例

    這篇文章主要給大家介紹了關(guān)于C# Winform按鈕中圖片實(shí)現(xiàn)左圖右字效果的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • C#控制鍵盤按鍵的常用方法

    C#控制鍵盤按鍵的常用方法

    這篇文章主要介紹了C#控制鍵盤按鍵的常用方法,涉及C#針對(duì)鍵盤大寫、滾動(dòng)、數(shù)字的開啟與鎖定等功能,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下
    2015-05-05
  • C#使用zxing/zbar/thoughtworkQRcode解析二維碼的示例代碼

    C#使用zxing/zbar/thoughtworkQRcode解析二維碼的示例代碼

    zxing是谷歌開源的二維碼庫,zbar,thoughtworkQRcode也是開源的,三者之間比較各有優(yōu)劣,本文將通過一個(gè)案例demo源碼,帶來認(rèn)識(shí)學(xué)習(xí)下這三者的實(shí)際解碼效果,感興趣的可以了解一下
    2023-07-07
  • C#與C++動(dòng)態(tài)鏈接庫DLL參數(shù)互傳方式

    C#與C++動(dòng)態(tài)鏈接庫DLL參數(shù)互傳方式

    這篇文章主要介紹了C#與C++動(dòng)態(tài)鏈接庫DLL參數(shù)互傳方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11

最新評(píng)論

新兴县| 广丰县| 渭南市| 从江县| 荃湾区| 晴隆县| 贡嘎县| 延安市| 五华县| 巫溪县| 衢州市| 黄大仙区| 乐平市| 武冈市| 安宁市| 沙湾县| 江口县| 阜平县| 丁青县| 铁岭市| 浦江县| 读书| 三门峡市| 通江县| 日土县| 连云港市| 靖远县| 吕梁市| 樟树市| 新津县| 芒康县| 黔东| 柳江县| 彝良县| 长春市| 灯塔市| 济源市| 基隆市| 梓潼县| 会宁县| 潮州市|