但我一直在用 Java 编程,所以我知道你可以在对象的实例化中覆盖方法
private MyObject myObject=new MyObject(){
@Override
public void myMethod(int args){
.
.
.
}
}
有人可以告诉我如何在 C# 中执行此操作吗...谢谢
最佳答案
与所有实例方法都是虚拟的 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();
关于java - C# 重写对象声明中的方法,就像在 Java 中一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38036674/