自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

C#重載、C#重寫和C#隱藏的定義

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

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

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

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

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

C#重寫時,訪問父類子類皆調(diào)用子類的重寫方法;

C#隱藏時,訪問父類則調(diào)用父類的方法,子類子類的方法。

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#重寫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

補充:重寫override一般用于接口實現(xiàn)和繼承類的方法改寫,要注意

1、覆蓋的方法的標志必須要和被覆蓋的方法的標志完全匹配,才能達到覆蓋的效果;

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

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

4、被覆蓋的方法不能為private,否則在其子類中只是新定義了一個方法,并沒有對其進行覆蓋。 

【編輯推薦】

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

2009-08-28 15:28:22

C# overridenew隱藏

2009-08-19 14:42:21

C#重載LoadPos

2009-07-31 16:00:30

C#函數(shù)重載

2009-09-01 11:19:47

C# 3.0擴展重載抉

2009-08-25 17:21:31

C#索引

2009-09-02 17:10:45

C#語言入門

2009-08-25 17:59:49

C#入門

2009-08-13 17:04:09

C#語言C#程序

2009-08-27 16:11:03

C# delegateC# event

2009-09-01 11:28:32

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

2009-09-04 11:35:05

C#方法重寫

2009-09-02 10:58:02

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

2021-03-15 08:18:23

C#反射模塊

2009-08-19 16:50:32

Visual C#C#語言特性

2009-08-24 09:55:26

C#接口轉(zhuǎn)換

2009-08-18 10:30:30

C#枚舉

2009-08-24 11:02:52

C#接口映射

2009-08-26 10:34:15

C#類型C#變量

2016-10-13 13:33:41

反射特性c#

2009-08-31 09:19:31

c#隱藏窗口
點贊
收藏

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