为了账号安全,请及时绑定邮箱和手机立即绑定

C#:覆盖返回类型

C#:覆盖返回类型

C#
蛊毒传说 2019-11-25 14:10:58
有没有办法在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 关注
  • 357 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信