我想實施一個迷你市場計劃。 有一個名爲(Goods)的抽象類和它的兩個派生類(乾貨和冷貨)。 如何在此之後添加一些項目? (雞蛋,牛奶,米飯等)如何實例化抽象類c#?
回答
你不能實例化一個抽象類。它的唯一目的是充當基礎班。雞蛋,牛奶,大米類必須從商品派生並實現該功能,如下圖所示:
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;
'DryGoods'和'ColdGoods'應該可能也是抽象的,不是爲了代碼的緣故,而是爲了商業邏輯。 –
如果你是,我創建DryGoods和ColdGoods的一些實例,而不是創建新的實體。 –
如果我從派生類中創建對象,那麼(GoodsType)有什麼用? – Saja
您必須創建子類的對象並使用該子類的對象可以設置值。你不能實例化一個抽象類。你可以使用它作爲唯一的一個基類..
謝謝,我應該在哪裏製作對象? WinForm實現中的 ? – Saja
它擁有.cs文件。你應該在子類中創建一個對象。 –
瞧,你有一個抽象基類:
public abstract class Good { }
有你有你的命名類:
public class Egg : Good { }
public class Milk : Good { }
public class Rice : Good { }
您現在可以添加屬性和方法的基類好。
現在,您還可以添加屬性和方法來命名類雞蛋,牛奶和大米:)
現在,您也可以有多個雞蛋,牛奶和大米,如果重命名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);
- 1. C++ - 無法實例化抽象類
- 2. C++不能實例化抽象類
- 3. c#如何使實例化更抽象?
- 4. 實例化的抽象類
- 5. 抽象類實例化
- 6. 實例化的抽象類
- 7. 實例化Java抽象類?
- 8. scala:抽象類實例化?
- 9. 如何讓抽象類「DocumentBuilderFactory」允許實例化新實例
- 10. 抽象類實例化內部類
- 11. 抽象類實例
- 12. 實例化的內抽象類另一抽象類
- 13. Proguard,Android和抽象類實例化
- 14. 無法實例化抽象類
- 15. PyXB:無法實例化抽象類型
- 16. 防止抽象類實例化
- 17. 「無法實例化抽象類」錯誤
- 18. 動態實例化抽象子類
- 19. 爪哇 - 動態實例化抽象類
- 20. 抽象類中的實例化
- 21. 實例化問題通過抽象類
- 22. C++:防止抽象基類的任何實例化的方法?
- 23. 如何實例化抽象類的子類?
- 24. 如何實例化派生自抽象類的類
- 25. C# - 實際例子 - 抽象類
- 26. 不能實例化抽象類,因爲成員是抽象的
- 27. 實例抽象類InputStream
- 28. C++,無法實例化抽象類錯誤
- 29. C++使用純虛函數實例化抽象類的子代
- 30. 無法在C++錯誤中實例化抽象類
只需從'DryGoods'或'ColdGoods'繼承它們?你可以[編輯]問題,以顯示你有什麼課程,你想如何使用其他(蛋,牛奶等) – Rhumborl
我有另一類(冰箱),(架子)和(購物車) 我想使用的項目把它們放在架子上或冰箱裏。並製作一個winform來展示這些商品,把它們放到購物車並結帳,就像客戶 – Saja