有没有办法在C#中覆盖返回类型?如果是这样,怎么做,如果不是,为什么,推荐的做事方式是什么?我的情况是我有一个带有抽象基类及其后代的接口。我想这样做(虽然不行,但是举个例子!):public interface Animal{ Poo Excrement { get; }}public class AnimalBase{ public virtual Poo Excrement { get { return new Poo(); } }}public class Dog{ // No override, just return normal poo like normal animal}public class Cat{ public override RadioactivePoo Excrement { get { return new RadioActivePoo(); } }}RadioactivePoo当然继承于Poo。我想为这是为了让那些谁使用Cat对象可以使用Excrement属性,而不必强制转换Poo成RadioactivePoo而例如Cat还可以是部分Animal列表,用户可能不一定知道或关心他们的放射性便便。希望有道理...据我所知,编译器至少不允许这样做。所以我想这是不可能的。但是您对此有什么建议呢?
3 回答
- 3 回答
- 0 关注
- 375 浏览
添加回答
举报
0/150
提交
取消