私はミニマーケットプログラムを実装したいと考えています。 そこには、(Goods)という名前の抽象クラスと、そこから2つの派生クラス(dryおよびcold商品)があります。 その後いくつかのアイテムを追加するには? (卵、牛乳、米など)抽象クラスC#をインスタンス化する方法は?
答えて
抽象クラスをインスタンス化することはできません。それは基本クラスとして行動することだけです。あなたの卵、牛乳、米クラスは、製品から派生し、以下に示すように、機能を実装する必要があります。
public abstract class Goods
{
}
public class DryGoods : Goods
{
}
public class ColdGoods : Goods
{
}
その後、ドライまたはコールド商品から継承し、より原始的なアイテムを持つことができます。
あなただけの直接派生DryGoods
または
ColdGoods
型を使用して
GoodsType
性質を持っている可能性が代わり
public class Egg : DryGoods
{
}
public class Milk : ColdGoods
{
}
あなたは軽量クラス(または譲渡するオブジェクト)としてMilk
またはEgg
を必要としない場合:
DryGoods egg = new DryGoods();
egg.GoodsType = DryGoods.Egg;
ColdGoods milk = new ColdGoods();
milk.GoodsType = ColdGoods.Milk;
'DryGoods'と' ColdGoods'は、コードのためではなく、ビジネスロジックのために、おそらく抽象的でなければなりません。 –
もしあなたでしたら、私はDryGoodsとColdGoodsのインスタンスを作成し、代わりに新しいEntityを作成します。 –
派生クラスからオブジェクトを作成すると、(GoodsType)の使用は何ですか? – Saja
サブクラスのオブジェクトを作成し、そのサブクラスのオブジェクトを使用して値を設定できます。抽象クラスをインスタンス化することはできません。あなたが1つの抽象基本クラスを持っている..唯一の基本クラスとして
ありがとう、私はオブジェクトを作るべきですか? WinForm実装の ? – Saja
には.csファイルがあります。サブクラスでオブジェクトを作成する必要があります。 –
ルックを使用することができます:
public abstract class Good { }
そしてそこにあなたの名前のクラスがあります。
public class Egg : Good { }
public class Milk : Good { }
public class Rice : Good { }
をあなたは今すぐ追加することができます基本クラスGoodへのプロパティとメソッド。あなたはGood
にGoods
の名前を変更する場合
あなたは今も名前付きクラスの卵、牛乳、そしてライスにプロパティとメソッドを追加することができます:)
をあなたは今も、複数の卵、ミルクとライスを持つことができます。
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. スカラー:抽象クラスのインスタンス化?
- 2. Kotlinで抽象クラスをインスタンス化する方法は?
- 3. C#インスタンス化をより抽象化する方法
- 4. クラスのインスタンス化を抽象化
- 5. 抽象クラス抽象クラスBの新しいインスタンスをインスタンス化できません
- 6. C++は抽象クラスをインスタンス化できません
- 7. C++エラーで抽象クラスをインスタンス化できません
- 8. クラスの「抽象メソッドで...抽象クラスをインスタンス化できません」
- 9. クラス 'Room'は抽象クラスです。インスタンス化できません
- 10. 抽象クラスの子クラスのインスタンス化に関する疑問
- 11. XMLを抽象クラスにアンマーシャリングする方法、クラスをインスタンス化するためにxsi:typeを知る方法
- 12. インスタンス化できない場合に抽象クラスを実行する方法
- 13. PHPの抽象クラスの子で抽象クラスの親をインスタンス化することは可能ですか?
- 14. Jmockit抽象クラスのインスタンス
- 15. C++純粋仮想関数を持つ抽象クラスの子をインスタンス化する
- 16. 抽象型のXSD要素をインスタンス化する方法
- 17. Java:抽象クラスの特定のサブクラスをインスタンス化するメソッド
- 18. 抽象クラスのインスタンス化を防止する
- 19. これは抽象クラスのインスタンス化ですか?
- 20. C#抽象クラスInstanitiation
- 21. 派生クラスでインスタンス化される抽象クラスのstatic readonlyフィールドを持つ方法はありますか?
- 22. 静的クラスを抽象化する方法
- 23. 抽象クラス対抽象クラス
- 24. Java:ラップされたクラスをインスタンス化する抽象クラスのサブクラスのラッパークラスを作成する方法
- 25. C++抽象親クラスで子メソッドを呼び出す方法は?
- 26. 抽象クラスで抽象関数を呼び出す方法
- 27. Python - 抽象クラスのサブクラス化
- 28. std :: make_shared抽象クラスのインスタンス化を使用したエラー
- 29. は、抽象クラスをインスタンス化することはできません「base.CreditCard」
- 30. c#インタフェース、抽象クラス、強制継承クラスを抽象クラスではない
「DryGoods」または「ColdGoods」からそれらを継承しますか? (卵、牛乳など) – Rhumborl
私は別のクラス(冷蔵庫)、(棚)、(カート)を持っています 私はアイテムを使いたいですか?棚や冷蔵庫に置くことができます。アイテムを表示するためにwinformを作成し、カートやチェックアウトに入れてください。 – Saja