相关疑难解决方法(0)

将set访问器添加到类中的属性,该类派生自仅具有get访问器的抽象类

我有一个抽象类,AbsClass实现了一个接口,IClass.IClass有几个属性,只有Get访问器.AbsClass实现的属性ICLASS为抽象属性,以在从派生的类中定义AbsClass.

因此,从AbsClass派生的所有类也需要通过与Get访问器具有相同的属性来满足IClass.但是,在某些情况下,我希望能够从IClass向属性添加set访问.然而,如果我尝试使用set访问器覆盖AbsClass中的抽象属性,我会收到此错误

ConcClassA.Bottom.Set无法覆盖,因为AbsClass.Bottom没有可覆盖的set访问器

请参阅下面的ConcClassA.

如果我有一个只实现IClass接口但没有继承自AbsClass的类,那么我可以添加一个没有问题的set访问器.请参阅 下面的ConcClassB.

我可以在AbsClass的每个派生中实现IClass,而不是直接为AbsClass实现.但是我从我的设计中知道每个AbsClass也需要一个IClass,所以我宁愿在层次结构中指定更高的值.

public interface IClass
{
    double Top
    {
        get;
    }
    double Bottom
    {
        get;
    }
}

abstract class AbsClass:IClass
{
    public abstract double Top
    {
        get;
    }

    public abstract double Bottom
    {
        get;
    }
}



class ConcClassA : AbsClass
{
    public override double Top
    {
        get …
Run Code Online (Sandbox Code Playgroud)

c# abstract-class properties interface

16
推荐指数
1
解决办法
8122
查看次数

标签 统计

abstract-class ×1

c# ×1

interface ×1

properties ×1