2016-06-26 80 views

回答

0

所以我知道你可以覆蓋對象的聲明

方法這是不是對象聲明類的實例。而這個特性在C#中不存在。

因此,你只能覆蓋在類聲明多態性方法:

public class A 
{ 
    public virtual void DoStuff() {} 
} 

public class B : A 
{ 
    public override void DoStuff() {} 
} 
1

與Java所有實例方法虛擬的,在C#中,你必須把virtual關鍵字明確

public class MyObject { 
    ... 
    // in order to be overriden in a derived class, base method should be 
    // explictly declared as virtual or abstract 
    public virtual void myMethod(int args){ 
     ... 
    } 
    ... 
    } 

在C#override關鍵字爲好,不只是一個屬性:

// class can't be declared locally, but explictly 
    public class MyOverridenObject: MyObject { 
    ... 
    // override is a mandatory keyword in the context 
    public override void myMethod(int args){ 
     ... 
    } 
    } 

最後,C#不允許實現類本地,所以你必須聲明類明確 (在上面的代碼MyOverridenObject),然後使用:

// Finally, you can assign an overriden class to the private field 
    private MyObject myObject = new MyOverridenObject();