C# 继承问题

2019-07-17 10:57发布

2个子类继承一个父类的一个 GetOrderInfo 方法,但2个子类的Info模型完全不一样,那父类的这个返回值怎么设置?子类的怎么设置,或者说怎么处理?

场景:
比如要2个平台的订单信息,都要获取信息,处理订单,就要封装。2个类都有GetOrderInfo ,则继承父类有GetOrderInfo,但2个平台的OrderA,OrderB完全不一样,都不能提取公共(基础)信息的那种,那GetOrderInfo的返回值怎么设置?用object么?或者这种情景有别的处理方法?

标签: 封装 继承
4条回答
Animai°情兽
2楼-- · 2019-07-17 11:26

就返回父类类型啊,使用的时候再转

    public interface IOrder
    {
        BaseOrder GetOrderInfo();
    }

    public abstract class BaseOrder:IOrder
    {
        public string Name { get; set; }

        public abstract BaseOrder GetOrderInfo();
    }

    public class OrderA : BaseOrder
    {
        public string A { get; set; }
        public override BaseOrder GetOrderInfo()
        {
            throw new NotImplementedException();
        }
    }

    public class OrderB : BaseOrder
    {
        public string B { get; set; }
        public override BaseOrder GetOrderInfo()
        {
            throw new NotImplementedException();
        }
    }

两个子类完全不一样也可以不用父类,直接接口

    public interface IOrder
    {
        IOrder GetOrderInfo();
    }


    public class OrderA : IOrder
    {
        public string A { get; set; }

        public IOrder GetOrderInfo()
        {
            throw new NotImplementedException();
        }
    }

    public class OrderB : IOrder
    {
        public string B { get; set; }

        IOrder IOrder.GetOrderInfo()
        {
            throw new NotImplementedException();
        }
    }
查看更多
手持菜刀,她持情操
3楼-- · 2019-07-17 11:32

完全不一样的东西.你用一个方法返回.这本身就非常奇怪.

查看更多
相关推荐>>
4楼-- · 2019-07-17 11:38

可以用泛型 public <T> GetOrderInfo()

查看更多
三岁会撩人
5楼-- · 2019-07-17 11:43

泛型接口了!

查看更多
登录 后发表回答