首页 新闻 会员 周边

C# 继承问题

0
悬赏园豆:50 [已解决问题] 解决于 2019-07-17 11:45

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

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

X君的主页 X君 | 初学一级 | 园豆:183
提问于:2019-05-19 10:37
< >
分享
最佳答案
1

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

收获园豆:50
dudu | 高人七级 |园豆:31007 | 2019-05-19 11:08
其他回答(3)
3

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

吴瑞祥 | 园豆:29449 (高人七级) | 2019-05-19 12:23
0

泛型接口了!

我性别男爱好女 | 园豆:218 (菜鸟二级) | 2019-05-21 18:27
0

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

    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();
        }
    }
海之殇 | 园豆:500 (菜鸟二级) | 2019-05-30 15:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册