重写继承的抽象类中的抽象方法

2024-02-19

好吧,基本上我有以下问题:我试图让一个抽象类继承另一个具有抽象方法的抽象类,但我不想在它们中的任何一个中实现抽象方法,因为第三个类继承了两个类其中:

public abstract class Command
{
      public abstract object execute();
}

public abstract class Binary : Command
{
     public abstract object execute(); //the issue is here
}

public class Multiply : Binary
{
     public override object execute()
     {
           //do stuff
     }
}

我试图将二进制命令与一元命令分开,但不想/无法实现其中的执行方法。我考虑过让 Binary 重写抽象方法(因为它必须这样做),然后抛出一个未实现的异常。如果我让它重写,那么我必须声明一个主体,但如果我让它抽象,那么我就“隐藏”了继承的方法。

有什么想法吗?


你不需要声明execute()在 Binary 类中,因为它已经从 Command 继承。抽象方法不需要由其他抽象类实现 - 需求被传递到最终的具体类。

public abstract class Command
{
    public abstract object execute();
}

public abstract class Binary : Command
{
    //the execute object is inherited from the command class.
}

public class Multiply : Binary
{
    public override object execute()
    {
        //do stuff
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

重写继承的抽象类中的抽象方法 的相关文章

随机推荐