gpt4 book ai didi

c# - 在继承的抽象类中覆盖抽象方法

转载 作者:太空狗 更新时间:2023-10-29 18:12:17 28 4
gpt4 key购买 nike

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

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
}
}

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

有什么想法吗?

最佳答案

您不需要在 Binary 类中声明 execute(),因为它已经从 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
}
}

关于c# - 在继承的抽象类中覆盖抽象方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13518381/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com