成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C#隱藏、C#重寫、C#重載的區別

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

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

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

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

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

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

C#重載時,根據參數選擇調用的方法;

C#重寫時,訪問父類子類皆調用子類的重寫方法;

C#隱藏時,訪問父類則調用父類的方法,子類子類的方法。

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一般用于接口實現和繼承類的方法改寫,要注意

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

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

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

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

【編輯推薦】

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

2009-08-28 15:28:22

C# overridenew隱藏

2009-08-19 14:42:21

C#重載LoadPos

2009-07-31 16:00:30

C#函數重載

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-13 17:04:09

C#語言C#程序

2009-08-25 17:59:49

C#入門

2009-08-27 16:11:03

C# delegateC# event

2009-09-01 11:28:32

C#使用函數重載

2009-09-02 10:58:02

C#動態數組

2021-03-15 08:18:23

C#反射模塊

2009-09-04 11:35:05

C#方法重寫

2009-08-24 09:55:26

C#接口轉換

2009-08-19 16:50:32

Visual C#C#語言特性

2016-10-13 13:33:41

反射特性c#

2009-08-18 10:30:30

C#枚舉

2009-08-24 11:02:52

C#接口映射

2009-08-26 10:34:15

C#類型C#變量

2009-08-28 10:14:45

C#內存泄露
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲福利一区二区 | 日韩成人在线播放 | 在线观看免费av片 | 日本在线免费观看 | 日韩一区二区成人 | www.黄色片视频 | 国产电影一区二区三区爱妃记 | 精品久久久久一区二区国产 | 四虎首页| 天天综合久久 | 日本中文在线 | 亚洲男人天堂av | 色综合久久天天综合网 | 91av在线视频观看 | 午夜影院污 | 国产高清不卡 | 黄色欧美 | 日韩毛片免费看 | 一级毛毛片 | 久久久久se| 久久男人| 99久久婷婷国产综合精品 | 欧美一区二区黄 | 综合精品久久久 | 欧美一二三区 | 久久综合久色欧美综合狠狠 | 久久成人免费视频 | 亚洲一区国产精品 | 久一久| 欧美一级片在线观看 | 亚洲乱码一区二区三区在线观看 | 2023亚洲天堂 | 国产成人精品网站 | 久久av在线播放 | 欧美综合一区二区三区 | 免费成人国产 | 亚洲成人免费视频在线观看 | 一区二区视频 | 欧美精品电影一区 | 夜夜艹 | 国产在线精品一区二区 |