如何实例化抽象类c#?

时间:2016-04-30 11:34:04

标签: c# .net oop abstract

我想实施一个迷你市场计划。 有一个名为(Goods)的抽象类和两个派生类(干货和冷货)。 之后如何添加一些项目? (鸡蛋,牛奶,米饭等)

3 个答案:

答案 0 :(得分:14)

您无法实例化抽象类。它的唯一目的是充当基类。您的鸡蛋,牛奶,米类必须来自商品并实施功能,如下所示:

public abstract class Goods 
{

}

public class DryGoods : Goods
{

}

public class ColdGoods : Goods
{

}

然后,您可以拥有从干货或冷货继承的更原始的商品。

public class Egg : DryGoods
{

}

public class Milk : ColdGoods
{

}

或者,如果您不需要MilkEgg作为轻量级类(或可转移对象),则可以直接使用派生的DryGoodsColdGoods类型并拥有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)

您必须创建子类的对象并使用该子类的对象来设置值。您无法实例化抽象类。您只能将它用作基类..