首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何实例化抽象类c#?

如何实例化抽象类c#?
EN

Stack Overflow用户
提问于 2016-04-30 11:34:03
回答 3查看 8.3K关注 0票数 7

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-04-30 11:35:44

不能实例化抽象类。它的唯一目的是充当一个基类。您的鸡蛋、牛奶、大米类必须从商品中派生出来并实现功能,如下所示:

代码语言:javascript
运行
复制
public abstract class Goods 
{

}

public class DryGoods : Goods
{

}

public class ColdGoods : Goods
{

}

然后,您可以从干货或冷藏品中继承更原始的物品。

代码语言:javascript
运行
复制
public class Egg : DryGoods
{

}

public class Milk : ColdGoods
{

}

或者,如果您不需要MilkEgg作为轻量级类(或可传输对象),您可以直接使用派生的DryGoodsColdGoods类型,并具有GoodsType属性:

代码语言:javascript
运行
复制
DryGoods egg = new DryGoods();
egg.GoodsType = DryGoods.Egg;

ColdGoods milk = new ColdGoods();
milk.GoodsType = ColdGoods.Milk;
票数 15
EN

Stack Overflow用户

发布于 2016-04-30 11:40:07

看,您有一个抽象基类:

代码语言:javascript
运行
复制
public abstract class Good { }

在这里,你有你的命名类:

代码语言:javascript
运行
复制
public class Egg : Good { }

public class Milk : Good { }

public class Rice : Good { }

现在可以将属性和方法添加到基类Good中。

现在还可以向命名的类Egg、Milk和Rice添加属性和方法:)

如果您将Goods重命名为Good,您现在也可以拥有多个鸡蛋,牛奶和大米。

代码语言:javascript
运行
复制
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);
票数 4
EN

Stack Overflow用户

发布于 2016-04-30 11:37:49

您必须创建子类的对象,并使用子类的对象可以设置值。不能实例化抽象类。您只能使用它作为基类。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36954365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档