从类的实例重写方法

本文关键字:重写 方法 实例 | 更新日期: 2023-09-27 18:12:36

我有一个简单的问题,但似乎找不到答案,我想知道是否有可能从实例类结构重写方法,看起来像这样:

public class A : baseA    
{
    public virtual void methodA()
    {
    }
}
public class B : baseB    
{
    public void method B()
    {
         var ClassA = new A();
    }
    /* Now Is there some sort of overide like */
    public override methodA()
    {
      //Do stuff
    }
}

并且这些类不能相互继承,这使它变得更加困难。那么这种构造在c#中是否可行呢?

从类的实例重写方法

No。如果你没有继承一个类,你就不能重写它的行为。

重写修饰符用于扩展或修改继承的方法、属性、索引器或事件的抽象或虚拟实现。

B必须从类A继承。

public class A
{
    public virtual void methodA()
    {
    }
}
public class B : A
{
    public void methodB()
    {
        var ClassA = new A();
    }
    public override void methodA()
    {
        //Do stuff
    }
}

查看MSDN获取更多详细信息:

重写方法提供从基类继承的成员的新实现。被覆盖声明覆盖的方法称为覆盖基方法。重写的基方法必须具有与重写方法

相同的签名。