偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

C#隱藏、C#重寫(xiě)、C#重載的區(qū)別

開(kāi)發(fā) 后端
本文介紹了C#隱藏、C#重寫(xiě)和C#重載的定義,以及三者之間的區(qū)別,希望對(duì)大家有用。

C#重載、C#重寫(xiě)和C#隱藏的定義

C#重載:同一個(gè)作用域內(nèi)發(fā)生(比如一個(gè)類(lèi)里面),定義一系列同名方法,但是方法的參數(shù)列表不同。這樣才能通過(guò)傳遞不同的參數(shù)來(lái)決定到底調(diào)用哪一個(gè)。而返回值類(lèi)型不同是不能構(gòu)成重載的。

C#重寫(xiě):繼承時(shí)發(fā)生,在子類(lèi)中重新定義父類(lèi)中的方法,子類(lèi)中的方法和父類(lèi)的方法是一樣的

        例如:基類(lèi)方法聲明為virtual(虛方法),派生類(lèi)中使用override申明此方法的重寫(xiě).

C#隱藏:基類(lèi)方法不做申明(默認(rèn)為非虛方法),在派生類(lèi)中使用new聲明此方法的隱藏。

C#重載時(shí),根據(jù)參數(shù)選擇調(diào)用的方法;

C#重寫(xiě)時(shí),訪問(wèn)父類(lèi)子類(lèi)皆調(diào)用子類(lèi)的重寫(xiě)方法;

C#隱藏時(shí),訪問(wèn)父類(lèi)則調(diào)用父類(lèi)的方法,子類(lèi)子類(lèi)的方法。

C#隱藏(new)示例:

  1. using    System;    
  2.    class    A    
  3.    {    
  4.          public    void    F()      
  5.          {    
  6.                Console.WriteLine("A.F");      
  7.          }    
  8.    }    
  9.    class    B:    A    
  10.    {    
  11.          new    public    void    F()      
  12.          {      
  13.                Console.WriteLine("B.F");      
  14.          }    
  15.    }    
  16.    class    Test    
  17.    {    
  18.          static void Main(string[] args)  
  19.          {    
  20.                B    b    =    new    B();    
  21.                b.F();    
  22.                A    a    =    b;      
  23.                a.F();    
  24.          }    
  25.    }   

輸出為 

   B.F 

   A.F 

C#重寫(xiě)virtual(虛方法)示例  

 

  1. using    System;    
  2.  class    A    
  3.  {    
  4.        public    virtual    void    F()      
  5.        {    
  6.              Console.WriteLine("A.F");      
  7.        }    
  8.  }    
  9.  class    B:    A    
  10.  {    
  11.        public    override    void    F()      
  12.        {      
  13.              Console.WriteLine("B.F");      
  14.        }    
  15.  }    
  16.  class    Test    
  17.  {    
  18.        static    void    Main()      
  19.        {    
  20.              B    b    =    new    B();    
  21.              b.F();    
  22.              A    a    =    b;      
  23.              a.F();    
  24.        }    
  25.  }  

輸出為 

   B.F 

   B.F

補(bǔ)充:重寫(xiě)override一般用于接口實(shí)現(xiàn)和繼承類(lèi)的方法改寫(xiě),要注意

1、覆蓋的方法的標(biāo)志必須要和被覆蓋的方法的標(biāo)志完全匹配,才能達(dá)到覆蓋的效果;

2、覆蓋的方法的返回值必須和被覆蓋的方法的返回一致;

3、覆蓋的方法所拋出的異常必須和被覆蓋方法的所拋出的異常一致,或者是其子類(lèi);

4、被覆蓋的方法不能為private,否則在其子類(lèi)中只是新定義了一個(gè)方法,并沒(méi)有對(duì)其進(jìn)行覆蓋。 

【編輯推薦】

  1. 總結(jié)C#哈希表的用法
  2. 不一樣的入門(mén):看C# Hello World的17種寫(xiě)法
  3. 什么是WMI?及其示例
  4. 從C#到C++容易出現(xiàn)的問(wèn)題解答
  5. 淺議.NET、ASP.NET和C#的關(guān)系
責(zé)任編輯:book05 來(lái)源: hi.baidu
相關(guān)推薦

2009-08-28 15:28:22

C# overridenew隱藏

2009-07-31 16:00:30

C#函數(shù)重載

2009-08-19 14:42:21

C#重載LoadPos

2009-09-01 11:19:47

C# 3.0擴(kuò)展重載抉

2009-08-25 17:21:31

C#索引

2009-09-02 17:10:45

C#語(yǔ)言入門(mén)

2009-08-13 17:04:09

C#語(yǔ)言C#程序

2009-08-27 16:11:03

C# delegateC# event

2009-08-25 17:59:49

C#入門(mén)

2009-09-01 11:28:32

C#使用函數(shù)重載

2021-03-15 08:18:23

C#反射模塊

2009-09-02 10:58:02

C#動(dòng)態(tài)數(shù)組

2009-09-04 11:35:05

C#方法重寫(xiě)

2009-08-24 11:02:52

C#接口映射

2009-08-18 10:30:30

C#枚舉

2009-08-26 10:34:15

C#類(lèi)型C#變量

2016-10-13 13:33:41

反射特性c#

2009-08-19 16:50:32

Visual C#C#語(yǔ)言特性

2009-08-24 09:55:26

C#接口轉(zhuǎn)換

2009-08-31 09:19:31

c#隱藏窗口
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)