C#中的虛方法總結--1

關於虛方法的一個簡單示例代碼:

Person p1 = new Student();

p1.Say();

1、父類引用p1訪問子類對象,p1只能訪問子類繼承自父類的成員!引可以入虛方法後可以解決這個問題


2、p1.Say();    這裏的Say()是父類中的方法,如果沒有虛方法,則會調用父類中Say()輸出:"I am Person!";引入虛方法後,調用子類中的Say()輸出"I am Student!"。 


namespace test
{
    class Program
    {
        static void Main(string[] args)
        {
            Person p1 = new Student();
	    p1.Say(); 
            Console.ReadKey();
        }
    }
}


class Person
{
    public Person()
    {
        Console.WriteLine("我是Person構造函數,我是一個人!");
    }
    public virtual void Say()     //父類的方法使用virtual關鍵字
    {
        Console.WriteLine("I am Person!");
    }
}


class Student : Person
{
    public Student()
    {
        Console.WriteLine("我是Student構造函數,我是一個學生!");
    }
    public override void Say()   //子類的方法使用virtual關鍵字
    {
        Console.WriteLine("I am Student!");
    }
}


class SeniorStudent : Student
{
    public SeniorStudent()
    {
        Console.WriteLine("我是SeniorStudent構造函數,我是一個高中生!");
    }
    public void Say()
    {
        Console.WriteLine("I am SeniorStudent!");
    }
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章