日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C# 子类实例化基类 基类使用不了子类的方法_C#学习笔记09--构造方法/析构方法/继承/多态/封装...

發布時間:2025/3/21 C# 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# 子类实例化基类 基类使用不了子类的方法_C#学习笔记09--构造方法/析构方法/继承/多态/封装... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一.構造方法

當創建一個類時, 系統會自動創建一個默認的無參構造方法, 這個方法和類同名, 在創建對象的時候自動調用. 默認的構造方法里面什么也沒有, 重寫之后就可以在創建對象的時候同時搞點事情了.

構造方法主要負責對類里面的字段進行初始化。

1.1 格式:

public

1.2 注意事項:

  • 構造方法必須要和類名重名;
  • 構造方法沒有返回值并且不加void, 但是可以有參數;
  • 構造方法可以有多個重載;
  • 構造方法只能在創建對象的時候才可以調用, 不能手動調用;
  • 如果有帶參數的構造方法, 想要調用默認構造必須顯式的寫出來;
  • 二.析構方法

    2.1 使用: 對象銷毀之前都會自動調用析構方法

    形象的來說, 我們玩游戲的時候把boss打死之后, boss會爆出各種裝備金幣,藍啊之類的, 這些方法我們就可以在析構方法里面寫;

    2.2 語法:

    ~

    2.3 注意:

  • 只有類才有析構方法, 一個類只能有一個析構方法.
  • 無法繼承和重載析構方法;
  • 不能手動調用, 對象在被銷毀之前會自動調用;
  • 析構方法沒有訪問修飾符, 沒有參數;
  • 必須和類名同名;
  • 三.繼承

    3.1 概念:

    繼承用于創建可重用、擴展和修改在其他類中定義的行為的新類。 其成員被繼承的類稱為“基類”,繼承這些成員的類稱為“派生類”。 派生類只能有一個直接基類(C#中))。 但是,繼承是可傳遞的。 如果 ClassB 派生出 ClassC,ClassA 派生出 ClassB,則 ClassC 會繼承 ClassB 和 ClassA 中聲明的成員。

    3.2 格式:

    class

    學過構造方法之后, 就想給每個類都寫個構造方法,以便簡化初始化操作. 但是嘗試過后發現如果父類寫了帶參數的構造方法, 子類就會報錯了, 如何解決? base帶你飛.

    3.3 繼承父類的構造方法:

    孩子在創建對象的時候, 會先調用父類的構造方法, 如果父類是無參的就沒有影響, 但是如果父類有有參數的構造方法, 孩子就需要傳參數. 調用父類有參的構造方法有兩個方法:

  • 在父類中顯式的將默認構造寫出來;
  • 子類在重寫構造方法的時候利用base關鍵字傳入父類的參數;
  • // 父類有參的構造方法

    3.4 注意:

  • 繼承具有單向性, a -> b , b不能繼承a;
  • C#中,只能繼承一個父類但是可以多重繼承;
  • 父類也叫基類, 子類也叫派生類;
  • 繼承具有傳遞性; a -> b, b -> c a就具有了c和b所有屬性和方法;
  • 基類有的,派生類都有;派生類有的,基類可能沒有。即:派生類可以賦值給基類,而基類不能賦值給派生類。
  • 子類在繼承的時候不管想不想都會繼承父類的所有字段和方法, 那么如果子類想用同樣的方法搞特殊呢? 那就要引入多態了.

    四.多態

    栗子: 就拿我們創建的僵尸們來說, 僵尸都會攻擊, 但是普通僵尸(小口咬), 路障僵尸(大口咬)和鐵桶僵尸(超大口咬)的攻擊方法不同, 這就是多態;

    4.1重寫父類方法的多態:

    1.在訪問修飾后面加上new關鍵字后重寫:// 父類的Attack方法

    那么問題來了, 我雖然重寫了父類的Attack方法, 但是我在某個地方還是想要使用父類的Attack方法的時候怎么辦呢?

    加上base關鍵字:// 子類中

    結果

    小結base:

  • 調用基類被派生類重寫的方法;
  • 指定調用基類中某一個指定的構造方法;
  • 4.2 virtual override 的多態

    用這種方法來實現多態需要做兩件事情:

    1> 將父類中要實現多態性的方法改成虛方法, 即在返回值類型前加關鍵字 virtual:// 僵尸父類 2>子類重寫父類的方法, 即將方法隱藏的關鍵字 new 改為 override.// 路障僵尸子類

    多態的運行結果

    假如說現在有20個路障僵尸和10個鐵桶僵尸, 他們現在都要進行攻擊怎么實現? 借助數組唄. 那么問題又來了, 數組類型是什么? 數組中既有路障僵尸類又有鐵桶僵尸類, 那想著能不能定義成他們的父類普通僵尸類呢? 要解決這個問題就需要用到里氏轉換了.

    4.3里氏轉換

    里氏轉換的本質其實就是將父類強制轉換成子類.

    4.3.1 里氏轉換第一原則

    子類對象可以直接賦值給父類對象// Main函數中

    4.3.2 里氏轉換第二原則

    父類可以通過強制轉換的方式轉換成子類, 此時就可以調用子類中的成員了
  • 使用is關鍵字判斷類型
  • 使用 as 關鍵字進行強制轉換
  • // Main函數中

    使用 as 關鍵字進行強轉即使不成功也不會報錯, 而是返回 null, 但是強行的 "ozb = (OstableZomby)zb" 轉換如果不成功的話, 程序就會報錯終止.

    那么現在我們就是將數組問題解決了:

    // Main函數中

    五.封裝

    在C#中, 可以把類里面的這些字段進行私有化保護, 并為其添加共有屬性, 在類的外面不能通過對象直接訪問這些字段, 想要訪問只能通過訪問屬性的方式來完成, 這就是封裝. 具體操作在記錄屬性的時候其實就已經寫了, 這里就不再記錄了.

    補充.結構體和類的區別:

  • 結構體是值類型, 而類是引用類型;
  • 結構體只能有兩個構造方法, 一個是無參默認的(且不能顯式寫出來!), 一個是將所有字段都初始化的;
  • 結構體不能被繼承, 而類可以被繼承;
  • 類有多態性, 結構體沒有多態性;
  • 一般只操作一些數據或是以數據為主的用結構類型, 當表示有一些層級關系的時候用類;
  • 結構體有裝箱拆箱的操作(值類型), 而類沒有裝箱拆箱的操作(引用類型);
  • int

    =======================================================

    思維導圖

    總結

    以上是生活随笔為你收集整理的C# 子类实例化基类 基类使用不了子类的方法_C#学习笔记09--构造方法/析构方法/继承/多态/封装...的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 2017天天干 | www超碰在线 | 青青视频免费 | 自拍欧美日韩 | 精品黑人一区二区三区观看时间 | 日本黄色中文字幕 | 国产精品美女一区二区三区 | 老牛嫩草二区三区观影体验 | 色av色 | 未满十八岁禁止进入 | 成人在线观看小视频 | 久久精品视频播放 | 国产一线在线观看 | 国产任你操 | 欧美日韩一区二区精品 | 亚洲欧美日韩另类在线 | 精品国产人妻一区二区三区 | 中文字幕无码精品亚洲35 | 性史性dvd影片农村毛片 | 免费观看在线播放 | 国产aⅴ精品 | 成人国产片女人爽到高潮 | 草草草在线视频 | 亚洲丝袜中文字幕 | 欧美黄色a视频 | 国产精品无码一区二区三区免费 | 无码少妇一级AV片在线观看 | 国内精品免费 | 国产欧美一区二区三区在线老狼 | 另类激情亚洲 | 国产在线观看免费视频今夜 | 精品人妻伦一区二区三区久久 | 一级黄色录像免费观看 | 小小姑娘电影大全免费播放 | 欧美a级免费 | 成人在线日韩 | 欧美久久一区二区三区 | 91午夜视频在线观看 | 国产精品资源在线 | 免费观看视频在线观看 | 国产偷怕 | 亚洲精品99999 | 日韩porn| 亚洲福利精品视频 | 午夜天堂网 | 亚洲一级免费毛片 | 制服丝袜亚洲色图 | 黑人无套内谢中国美女 | 日韩大片免费 | 亚洲天堂中文字幕在线 | 亚洲精品69 | 美女av免费在线观看 | 久久久免费在线观看 | 无码国产精品一区二区高潮 | 理论片av | 成人做爰的视频 | 超碰av在线播放 | 亚洲小说专区 | 和黑帮大佬的365 | 九九九在线 | av秋霞| 亚色一区| 日日操天天操夜夜操 | 日本一本在线 | 国产一区二区三区观看 | 国产成人精品一区二区在线观看 | 久久r这里只有精品 | 亚洲精品天堂成人片av在线播放 | 高清不卡毛片 | 97狠狠操 | 超碰在线公开免费 | 亚洲成人91 | 中文字幕无码精品亚洲35 | 91极品视频 | 动漫美女无遮挡免费 | 日韩爱爱免费视频 | 色婷婷av一区二区三区在线观看 | 久久免费在线观看 | 日韩无 | 亚洲三级久久 | 老熟妇高潮一区二区三区 | 理论av| 男女羞羞无遮挡 | √资源天堂中文在线视频 | 国产精品无码AV无码国产 | 久久精品电影 | 亚洲一级二级 | 91网址在线观看 | 少妇精品一区二区 | 99久久精品免费 | 香蕉视频传媒 | 中文字幕11页中文字幕11页 | 亚洲一二三区在线 | 精品国产一区二区三区久久久久久 | 亚洲欧洲久久久 | 国内av网站| 小少妇哺乳喂奶播放 | 中文字幕.com | 久久亚洲精 |