小编Pau*_*man的帖子

派生的C#接口属性是否可以覆盖具有相同名称的基本接口属性?

我正在尝试创建一个接口继承系统,它使用相同的属性,但始终是另一个派生类型.因此,应该以某种方式覆盖或隐藏派生接口的基本属性.

例如,两个接口,男人和女人,来自丈夫和妻子,也是接口.男人和丈夫的接口都有"甜心"财产,而女人和妻子则有"亲爱的"财产.现在,男人的"甜心"财产是女人,而丈夫的"甜心"财产应该是妻子(源自女人).和女人和妻子的"亲爱的"财产一样.

public interface Man // base interface for Husband
{
    Woman sweetheart { get; set; }
}

public interface Woman // base interface for Wife
{
    Man darling { get; set; }
}

public interface Husband : Man // extending Man interface
{
    new Wife sweetheart { get; set; } // narrowing "sweetheart" property's type
}

public interface Wife : Woman // extending Woman interface
{
    new Husband darling { get; set; } // narrowing "darling" property's type
} …
Run Code Online (Sandbox Code Playgroud)

c# inheritance overriding properties interface

14
推荐指数
2
解决办法
8229
查看次数

标签 统计

c# ×1

inheritance ×1

interface ×1

overriding ×1

properties ×1