c# 多態性

來源:互聯網
上載者:User

標籤:col   編譯   rtu   運算子   eal   建立   bsp   聲明   成員   

0、多態性往往表現為"一個介面,多個功能"。

1、多態性可以是靜態或動態。在靜態多態性中,函數的響應是在編譯時間發生的。在動態多態性中,函數的響應是在運行時發生的。

2、靜態多態性

在編譯時間,函數和對象的串連機制被稱為早期繫結,也被稱為靜態繫結。C# 提供了兩種技術來實現靜態多態性。分別為:

  • 函數重載
  • 運算子多載

3、動態多態性

C# 允許您使用關鍵字 abstract 建立抽象類別,用於提供介面的部分類的實現。當一個衍生類別繼承自該抽象類別時,實現即完成。抽象類別包含抽象方法,抽象方法可被衍生類別實現。衍生類別具有更專業的功能。

請注意,下面是有關抽象類別的一些規則:

  • 您不能建立一個抽象類別的執行個體。
  • 您不能在一個抽象類別外部聲明一個抽象方法。
  • 通過在類定義前面放置關鍵字 sealed,可以將類聲明為密封類。當一個類被聲明為 sealed 時,它不能被繼承。抽象類別不能被聲明為 sealed。

當有一個定義在類中的函數需要在繼承類中實現時,可以使用虛方法。虛方法是使用關鍵字 virtual 聲明的。虛方法可以在不同的繼承類中有不同的實現。對虛方法的調用是在運行時發生的。

動態多態性是通過 抽象類別虛方法 實現的。

virtual 和 abstract

virtual和abstract都是用來修飾父類的,通過覆蓋父類的定義,讓子類重新定義。

  • 1.virtual修飾的方法必須有實現(哪怕是僅僅添加一對大括弧),而abstract修飾的方法一定不能實現。
  • 2.virtual可以被子類重寫,而abstract必須被子類重寫。
  • 3.如果類成員被abstract修飾,則該類前必須添加abstract,因為只有抽象類別才可以有抽象方法。
  • 4.無法建立abstract類的執行個體,只能被繼承無法執行個體化。

 

c# 多態性

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.