0条评论
还没有人评论过~
2个子类继承一个父类的一个 GetOrderInfo 方法,但2个子类的Info模型完全不一样,那父类的这个返回值怎么设置?子类的怎么设置,或者说怎么处理?
场景:
比如要2个平台的订单信息,都要获取信息,处理订单,就要封装。2个类都有GetOrderInfo ,则继承父类有GetOrderInfo,但2个平台的OrderA,OrderB完全不一样,都不能提取公共(基础)信息的那种,那GetOrderInfo的返回值怎么设置?用object么?或者这种情景有别的处理方法?
可以用泛型 public <T> GetOrderInfo()
完全不一样的东西.你用一个方法返回.这本身就非常奇怪.
泛型接口了!
就返回父类类型啊,使用的时候再转
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();
}
}