程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> c#辦法重寫和隱蔽的進修示例

c#辦法重寫和隱蔽的進修示例

編輯:C#入門知識

c#辦法重寫和隱蔽的進修示例。本站提示廣大學習愛好者:(c#辦法重寫和隱蔽的進修示例)文章只能為提供參考,不一定能成為您想要的結果。以下是c#辦法重寫和隱蔽的進修示例正文


比來正在進修c#,對個中的辦法重寫和隱蔽的概念很是隱約,如今將其歸結以下:

1:辦法重寫:就是在基類中的辦法用virtual症結字來標識,然後在繼續類中對該類停止重寫(override),如許基類中的辦法曾經被重寫了,曾經掉去了功效了。當讓基類的對象的援用直接指向繼續類的對象時(多態性),挪用該辦法則是挪用的繼續類的辦法。

2:辦法隱蔽:不管基類中的辦法能否用了virtual症結字,繼續類中都可以用new症結字(假如不消new的話,不會發生毛病,但會生成一個編譯正告)將基類中的辦法隱蔽,所謂隱蔽就是隱蔽,不像重寫,重寫就是本來的(基類中)曾經不存在了,而隱蔽是本來的還存在。所以當讓基類的對象的援用直接指向繼續類的對象時(多態性),挪用該辦法則是挪用的基類的辦法。

代碼以下:


public class BaseClass
    {
        public void functionA()
        {
            Console.WriteLine("BaseFunctionA http://www.jb51.net/sosoft/");
        }
        public virtual void functionB()
        {
            Console.WriteLine("BaseFunctionB http://www.jb51.net/sosoft/");
        }
    }
   public class DerivedClass:BaseClass
    {
        public new void functionA()
        {
            Console.WriteLine("DerivedFunctionA http://www.jb51.net/sosoft/");
        }
        public override void functionB()
        {
            Console.WriteLine("DerivedFunctionB http://www.jb51.net/sosoft/");
        }
    }

當應用多態性履行上面代碼時:


BaseClass baseFunction=new DerivedClass();
baseFunction.functionA();
baseFunction.functionB();

獲得的成果是:

BaseFunctionA http://www.jb51.net/sosoft/
DerivedFunctionB http://www.jb51.net/sosoft/

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved