java - C# 重写对象声明中的方法,就像在 Java 中一样

标签 java c# declaration overriding

但我一直在用 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/

相关文章:

java - 我的 Int() 总是返回 0?

java - 使用 OpenJDK 1.8 的 JavaFX 的 Maven 依赖项

java - java中char数组到int数组转换产生空指针异常

c# - 跟踪 C# Controller 和 View 中的两个变量

复杂声明

在包含该类列表的结构之后定义的 C++ 类

c++ - 使用带有 max_element 的 lambda 函数编译错误

java - Log4j 的配置可以动态更改吗?

c# - 如何在c#中的特定位置写入数据?

c# - 如何使用 C# 舍入到最接近的 .5