C#中重載方法與重寫方法的區別

在C#面向對象編程中,重寫方法和重載方法是兩個重要的概念,但我們有時會混淆這些概念,甚至一些參考書和網絡上都弄錯,現在對這兩種概念澄清一下。

1.重載方法

在C#中,重載方法是指在類中有兩個或兩個以上的方法,但各個方法的參數類型、參數個數或順序不同,例如下面類中定義了add方法並重載:

class Addition
    {
        public int add(int x)
        {
            return x + x;
        }
        public int add(int x, int y)
        {
            return x + y;
        }
        public float add(float x, float y)
        {
            return x + y;
        }
        public float add(int x, float y)
        {
            return x + y;
        }
    }


注意:在重載方法時,方法的簽名不能相同,否則會出錯。

2.重寫方法

在C#中,如果一個實例方法的聲明中含有override修飾符,則該方法稱爲重寫方法,重寫方法用相同的方法簽名覆蓋所繼承的虛方法或抽象方法,例如下面的繼承類重寫了基類的靜態方法與虛方法:

public abstract class Teacher
    {
        public abstract void Name();
        public virtual void Address()
        {
            Console.WriteLine("這是基類的虛方法!");
        }
    }
    public class Myteacher:Teacher
    {
        public override void Name()
        {
            Console.WriteLine("重寫基類的抽象方法!");
        }
        public override void Address()
        {
            Console.WriteLine("重寫基類的虛方法!");
        }
    }


 

發佈了26 篇原創文章 · 獲贊 13 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章