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

c#重載和重寫及運用,

編輯:C#入門知識

c#重載和重寫及運用,


 重載的條件:           1.必須在同一個類中2.方法名必須相同3.參數列表不能相同。
   重寫的條件:
          1. 在不同的類中
          2. 發生方法重寫的兩個方法返回值,方法名,參數列表必須完全一致
          3. 子類拋出的異常不能超過父類相應的方法拋出的異常
          4. 子類方法的訪問級別不能低於父類相應方法的訪問級別(public,package,protected, private)
          5.方法體不同

super()調用父類構造,super.只能調用父類的實例方法
this()調用該類的其他構造方法,this.調用類的屬性,方法
如果父類有有參構造,子類必須定義構造方法

重載:

       重載發生在同一個類中;重載主要是針對同一個類中方法名相同但參數(必須的)不同或返回類型(不是必須的)不同的情況。可以參照如下的代碼


class OverLoadTest
    {
        public void Hello()
        {
        }
        public void Hello(string str)
        {
        }
        public string Hello()
        {
        }
    }
在這段代碼中有三個具有相同名稱的方法Hello,他們彼此之間是重載的關系,注意兩點:他們共同存在於一個類中,雖有同樣的名字但是執行不同的操作;第一個方法和第三個方法只有返回類型不同,這在C# 中是不允許的,編譯器會報出“已定義一個名為"Hello"的方法”的錯誤。


重寫:

      重寫發生在有繼承關系的類之間 
      重寫發生在派生類上,通過override關鍵字來改寫從其父類繼承過來的具有相同返回值,方法名稱和參數列表的方法。

    class Program
    {
        static void Main(string[] args)
        {
            OverWriteTestTT owTT = new OverWriteTestTT();
            owTT.Hello();
            overWriteTestTTT owTTT = new overWriteTestTTT();
            owTTT.Hello();
        }
    }
    class OverWriteTest
    {
        //Over write the method ToString();
        public override string ToString()
        {
            return "hello world";
        }
        //Define a virtual method Hello() to be over written
        public virtual void Hello()
        {
            Console.WriteLine("hello");
        }
    }
    class OverWriteTestTT : OverWriteTest
    {
        public override void Hello()
        {
            Console.WriteLine("No hello world");
        }
    }
    class overWriteTestTTT : OverWriteTestTT
    {
        //Over write the method Hello() of class OverWriteTestTT
        public override void Hello()
        {
            base.Hello();
            Console.WriteLine("NNo hello world");
        }
    }
 

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