我想实施一个迷你市场计划。 有一个名为(Goods)的抽象类和两个派生类(干货和冷货)。 之后如何添加一些项目? (鸡蛋,牛奶,米饭等)
答案 0 :(得分:14)
您无法实例化抽象类。它的唯一目的是充当基类。您的鸡蛋,牛奶,米类必须来自商品并实施功能,如下所示:
public abstract class Goods
{
}
public class DryGoods : Goods
{
}
public class ColdGoods : Goods
{
}
然后,您可以拥有从干货或冷货继承的更原始的商品。
public class Egg : DryGoods
{
}
public class Milk : ColdGoods
{
}
或者,如果您不需要Milk
或Egg
作为轻量级类(或可转移对象),则可以直接使用派生的DryGoods
或ColdGoods
类型并拥有GoodsType
属性:
DryGoods egg = new DryGoods();
egg.GoodsType = DryGoods.Egg;
ColdGoods milk = new ColdGoods();
milk.GoodsType = ColdGoods.Milk;
答案 1 :(得分:4)
看,你有一个抽象基类:
public abstract class Good { }
你有你的命名课程:
public class Egg : Good { }
public class Milk : Good { }
public class Rice : Good { }
您现在可以将属性和方法添加到基类Good。
现在,您还可以将属性和方法添加到命名类Egg,Milk和Rice:)
如果您将Goods
重命名为Good
,您现在还可以拥有多个鸡蛋,牛奶和大米:
var allGoods = new List<Good>();
var eggs = new Egg[16];
allGoods.Add(eggs);
var milk = new Milk[64];
allGoods.Add(milk);
var rice = new Rice[64];
allGoods.Add(rice);
答案 2 :(得分:0)
您必须创建子类的对象并使用该子类的对象来设置值。您无法实例化抽象类。您只能将它用作基类..