C#如何?方法的版本控制?

來源:互聯網
上載者:User
具體內容可以參見《C#與.Net技術平台演練》一書中的11-7章節 版本控制。
下面是案例代碼:
using System;
class A
{
    public void F1()
    {
        Console.WriteLine("A.F1");
    }
    public virtual void F2()
    {
        Console.WriteLine("A.F2");
    }
    public virtual void F3()
    {
        Console.WriteLine("A.F3");
    }

}
class B:A
{
    public virtual void F1()
    {
        Console.WriteLine("B.F1");
    }
    public override void F2()
    {
        Console.WriteLine("B.F2");
    }
    public new void F3()
    {
        Console.WriteLine("B.F3");
    }
}
class C:B
{
    public override void F1()
    {
        Console.WriteLine("C.F1");
    }
    public override void F2()
    {
        Console.WriteLine("C.F2");
    }
    public  void F3()
    {
        Console.WriteLine("C.F3");
    }
}
class App
{
    static void Main(string[] args)
    {
        A o1=new A();
        Console.WriteLine("/////////////////////");
        Console.WriteLine("A o1=new A()");
        Console.WriteLine("after we call the methods:");
        o1.F1();
        o1.F2();
        o1.F3();
        ////////////////////////////////////////////////////
        B o2=new C();
        Console.WriteLine("/////////////////////");
        Console.WriteLine("B o2=new C()");
        Console.WriteLine("after we call the methods:");
        o2.F1();
        o2.F2();
        o2.F3();
        ////////////////////////////////////////////////////
        A o3=o2;
        Console.WriteLine("/////////////////////");
        Console.WriteLine("B o3=new C()");
        Console.WriteLine("after we call the methods:");
        o3.F1();
        o3.F2();
        o3.F3();
       
        Console.Read();
    }
}

思考後可以對比答案:
/////////////////////
A o1=new A()
after we call the methods:
A.F1
A.F2
A.F3
/////////////////////
B o2=new C()
after we call the methods:
C.F1
C.F2
B.F3
/////////////////////
B o3=new C()
after we call the methods:
A.F1
C.F2
A.F3


小結:針對物件導向的多態特性,我們常常將對象聲明為一個基礎類型,但是初始化為衍生類別型,以此在調用基礎類的方法時,實現方法的動態邦定。要實現這個特性,一定要記住一個原則:基礎類中的方法應該使用virtual修飾符,而衍生類別中的同一方法使用override修飾符,只有完整的配對使用才可以實現多態的這一個特性。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.