亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

深入理解C# abstract和virtual關(guān)鍵字

 更新時(shí)間:2011年06月27日 20:00:21   作者:  
深入理解C# abstract和virtual關(guān)鍵字,學(xué)習(xí)c#的朋友可以參考下。
復(fù)制代碼 代碼如下:

class A
{
public virtual void Func() // 注意virtual,表明這是一個(gè)虛擬函數(shù)
{
Console.WriteLine("Func In A");
}
}
class B : A // 注意B是從A類繼承,所以A是父類,B是子類
{
public override void Func() // 注意override ,表明重新實(shí)現(xiàn)了虛函數(shù)
{
Console.WriteLine("Func In B");
}
}
class C : B // 注意C是從B類繼承,所以B是父類,C是子類
{
}
class D : A // 注意D是從A類繼承,所以A是父類,D是子類
{
public new void Func() // 注意new ,表明覆蓋父類里的同名類,而不是重新實(shí)現(xiàn)
{
Console.WriteLine("Func In D");
}
}
class Program
{
static void Main(string[] args)
{
A a; // 定義一個(gè)a這個(gè)A類的對象.這個(gè)A就是a的申明類
A b; // 定義一個(gè)b這個(gè)A類的對象.這個(gè)A就是b的申明類
A c; // 定義一個(gè)c這個(gè)A類的對象.這個(gè)A就是c的申明類
A d; // 定義一個(gè)d這個(gè)A類的對象.這個(gè)A就是d的申明類
a = new A(); // 實(shí)例化a對象,A是a的實(shí)例類
b = new B(); // 實(shí)例化b對象,B是b的實(shí)例類
c = new C(); // 實(shí)例化c對象,C是c的實(shí)例類
d = new D(); // 實(shí)例化d對象,D是d的實(shí)例類
a.Func(); // 執(zhí)行a.Func:1.先檢查申明類A 2.檢查到是虛擬方法 3.轉(zhuǎn)去檢查實(shí)例類A,就為本身 4.執(zhí)行實(shí)例類A中的方法 5.輸出結(jié)果 Func In A
b.Func(); // 執(zhí)行b.Func:1.先檢查申明類A 2.檢查到是虛擬方法 3.轉(zhuǎn)去檢查實(shí)例類B,有重載的 4.執(zhí)行實(shí)例類B中的方法 5.輸出結(jié)果 Func In B
c.Func(); // 執(zhí)行c.Func:1.先檢查申明類A 2.檢查到是虛擬方法 3.轉(zhuǎn)去檢查實(shí)例類C,無重載的 4.轉(zhuǎn)去檢查類C的父類B,有重載的 5.執(zhí)行父類B中的Func方法 5.輸出結(jié)果 Func In B
d.Func(); // 執(zhí)行d.Func:1.先檢查申明類A 2.檢查到是虛擬方法 3.轉(zhuǎn)去檢查實(shí)例類D,無重載的(這個(gè)地方要注意了,雖然D里有實(shí)現(xiàn)Func(),但沒有使用override關(guān)鍵字,所以不會被認(rèn)為是重載) 4.轉(zhuǎn)去檢查類D的父類A,就為本身 5.執(zhí)行父類A中的Func方法 5.輸出結(jié)果 Func In A
D d1 = new D();
d1.Func(); // 執(zhí)行D類里的Func(),輸出結(jié)果 Func In D
Console.ReadLine();
}
}

相關(guān)文章

  • C#加解密之AES算法的實(shí)現(xiàn)

    C#加解密之AES算法的實(shí)現(xiàn)

    一般我們來說呢,對于加密,我們分為可逆和不可逆??赡婕用苡挚煞譃閷ΨQ加密(AES、DES等)和非對稱加密(RSA),還有就是一些編碼加密等(BASE64);不可逆的呢,大部分又都稱為摘要算法(MD5、SHA)。本文將用C#實(shí)現(xiàn)AES算法,需要的可以參考一下
    2022-08-08
  • 基于WPF實(shí)現(xiàn)面包屑控件的示例代碼

    基于WPF實(shí)現(xiàn)面包屑控件的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何基于WPF實(shí)現(xiàn)簡單的面包屑控件,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)或工作有一定幫助,感興趣的小伙伴可以了解一下
    2023-05-05
  • C#繼承IList?接口的實(shí)現(xiàn)步驟

    C#繼承IList?接口的實(shí)現(xiàn)步驟

    C#中的IList<T>接口是.NET框架中的一種通用接口,它定義了一組在運(yùn)行時(shí)可以使用類型參數(shù)T的元素的集合,本文給大家介紹了C#繼承IList?接口的設(shè)計(jì)方法,文中通過代碼示例給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2024-02-02
  • C#中異步是4種實(shí)現(xiàn)方式詳解

    C#中異步是4種實(shí)現(xiàn)方式詳解

    這篇文章主要為大家詳細(xì)介紹了C#中異步實(shí)現(xiàn)方式的相關(guān)知識,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • C#幾種獲取網(wǎng)頁源文件代碼的實(shí)例

    C#幾種獲取網(wǎng)頁源文件代碼的實(shí)例

    C#幾種獲取網(wǎng)頁源文件代碼的實(shí)例,需要的朋友可以參考一下
    2013-04-04
  • C#?WPF?ListBox?動(dòng)態(tài)顯示圖片功能

    C#?WPF?ListBox?動(dòng)態(tài)顯示圖片功能

    這篇文章主要介紹了C#?WPF?ListBox?動(dòng)態(tài)顯示圖片,處理過程分為前臺代碼和后臺代碼,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-08-08
  • C#創(chuàng)建Windows服務(wù)的實(shí)現(xiàn)方法

    C#創(chuàng)建Windows服務(wù)的實(shí)現(xiàn)方法

    這篇文章主要介紹了C#創(chuàng)建Windows服務(wù)的實(shí)現(xiàn)方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-03-03
  • C#對XmlHelper幫助類操作Xml文檔的通用方法匯總

    C#對XmlHelper幫助類操作Xml文檔的通用方法匯總

    該篇文章主要總結(jié)的是自己平時(shí)工作中使用頻率比較高的Xml文檔操作的一些常用方法和收集網(wǎng)上寫的比較好的一些通用Xml文檔操作的方法,對C#?XmlHelper幫助類操作Xml文檔相關(guān)知識感興趣的朋友一起看看吧
    2022-03-03
  • C#中正則表達(dá)式的3種匹配模式

    C#中正則表達(dá)式的3種匹配模式

    本文主要介紹在C#中正則匹配的三種模式:單行模式(Singleline)、多行模式(Multiline)與忽略大小寫(IgnoreCase),希望能幫到大家。
    2016-05-05
  • C#和SQL實(shí)現(xiàn)的字符串相似度計(jì)算代碼分享

    C#和SQL實(shí)現(xiàn)的字符串相似度計(jì)算代碼分享

    這篇文章主要介紹了C#和SQL實(shí)現(xiàn)的字符串相似度計(jì)算代碼分享,本文分別給出了C#語言和SQL語言的實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2014-10-10

最新評論