gpt4 book ai didi

c# - 抽象类没有实现接口(interface)

转载 作者:太空狗 更新时间:2023-10-29 17:34:39 24 4
gpt4 key购买 nike

我有一个接口(interface),因此类编写者被迫实现某些方法。我还想允许一些默认实现的方法,所以我创建了一个抽象类。问题是所有类都继承自基类,因此我在其中有一些辅助函数。

我尝试用抽象基编写: IClass,但我得到一个错误,说基没有实现接口(interface)。好吧,当然是因为我想要这个抽象并让用户实现这些方法。作为返回对象,如果我使用 base,我将无法调用接口(interface)类方法。如果我使用该接口(interface),我将无法访问基本方法。

我如何才能拥有这些辅助类并强制用户实现某些方法?

最佳答案

确保基类中的方法与接口(interface)同名,并且是公开的。此外,使它们成为虚拟的,以便子类可以覆盖它们而不隐藏它们。

interface IInterface {
void Do();
void Go();
}

abstract class ClassBase : IInterface {

public virtual void Do() {
// Default behaviour
}

public abstract void Go(); // No default behaviour

}

class ConcreteClass : ClassBase {

public override void Do() {
// Specialised behaviour
}

public override void Go() {
// ...
}

}

关于c# - 抽象类没有实现接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3223552/

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