C#重写对象声明中的方法,如Java中的方法
但我一直在用Java编程,所以我知道可以在对象的实例化中重写方法C#重写对象声明中的方法,如Java中的方法,java,c#,declaration,overriding,Java,C#,Declaration,Overriding,但我一直在用Java编程,所以我知道可以在对象的实例化中重写方法 private MyObject myObject=new MyObject(){ @Override public void myMethod(int args){ . . . } } 有人能告诉我怎么用C#。。谢谢与Java不同,J
private MyObject myObject=new MyObject(){
@Override
public void myMethod(int args){
.
.
.
}
}
有人能告诉我怎么用C#。。谢谢与Java不同,Java中所有实例方法都是虚拟的,在C#中,您必须明确地输入
virtual
关键字:
在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#不允许在本地实现类,因此您必须显式声明类(MyOverrideObject
,在上面的代码中),然后使用:
// Finally, you can assign an overriden class to the private field
private MyObject myObject = new MyOverridenObject();
所以我知道你们可以重写对象声明中的方法
这不是对象声明,而是类实例化。而这一特性在C#中并不存在
因此,只能重写类声明上的多态方法:
public class A
{
public virtual void DoStuff() {}
}
public class B : A
{
public override void DoStuff() {}
}
public class A
{
public virtual void DoStuff() {}
}
public class B : A
{
public override void DoStuff() {}
}