c#重載和重寫及運用

來源:互聯網
上載者:User

標籤:

 重載的條件:          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");
        }
    }
 

c#重載和重寫及運用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.