2016-04-30 30 views
5

Bir mini market programı uygulamak istiyorum. (Mallar) adında soyut bir sınıf ve ondan iki türetilmiş sınıf (kuru ve soğuk ürünler) vardır. Bundan sonra bazı öğeler nasıl eklenir? (yumurta, süt, pirinç ... vb)Soyut sınıf C# nasıl oluşturulur?

+1

Sadece "DryGoods" veya "ColdGoods" dan miras aldınız? Sahip olduğunuz sınıfları ve diğerlerini nasıl kullanmak istediğinizi sordurabilir misiniz? (Yumurta, süt vb) – Rhumborl

+0

Başka bir dersim var (buzdolabı), (raflar) ve (araba) Öğeleri kullanmak istiyorum onları raflara veya buzdolabına koymak için. ve ürünleri göstermek için bir form hazırlayın, onları sepete ve kasaya koyun, müşteriler gibi – Saja

cevap

13

Soyut bir sınıf oluşturamazsınız. Tek amaç, bir temel sınıf olarak hareket etmektir. aşağıda gösterildiği gibi Kişisel Yumurta, Süt, pirinç sınıf, Mal türetme ve işlevselliğini uygulamak gerekir: Sonra Kuru veya Soğuk mal devralan daha ilkel öğesi olabilir

public abstract class Goods 
{ 

} 

public class DryGoods : Goods 
{ 

} 

public class ColdGoods : Goods 
{ 

} 

.

public class Egg : DryGoods 
{ 

} 

public class Milk : ColdGoods 
{ 

} 

size sadece doğrudan türetilmiş DryGoods veya ColdGoods türlerini kullanmak ve bir GoodsType özelliği olabilir Milk veya Egg olarak hafif sınıfları (Ya transfer nesneleri) gerekmez Alternatif eğer:

DryGoods egg = new DryGoods(); 
egg.GoodsType = DryGoods.Egg; 

ColdGoods milk = new ColdGoods(); 
milk.GoodsType = ColdGoods.Milk; 
+4

'DryGoods' ve' ColdGoods' da muhtemelen soyut olmalı, kodun uğruna değil, iş mantığı uğruna. –

+0

Eğer olsaydınız, yeni bir Varlık oluşturmak yerine birtakım DryGoods ve ColdGoods oluşturur. –

+0

Türetilmiş sınıflardan nesne yaparsam, (GoodsType) kullanımı nedir? – Saja

0

Alt sınıfın nesnesini almalı ve bu alt sınıf nesnesini kullanarak değerleri ayarlayabilirsiniz. Soyut bir sınıf oluşturamazsın.

public class Egg : Good { } 

public class Milk : Good { } 

public class Rice : Good { } 

Artık ekleyebilirsiniz: Eğer Adlandırılan sınıfları orada

public abstract class Good { } 

Ve: Sen .. sadece bir temel sınıf olarak

+0

Teşekkürler, nesneleri nasıl yapmalıyım? WinForm uygulamasında ? Sahip olduğu .cs dosyasında – Saja

+0

. Alt sınıfta bir nesne yapmalısınız. –

4

Bak kullanabilirsiniz, bir soyut temel sınıf var Baz sınıfına ait özellikler ve yöntemler.

Artık Ayrıca Özellikleri ve Yöntemleri Named sınıflar Yumurta, Süt için, ve Rice :) ekleyebilir

yeniden adlandırmak varsa şimdi de, birden Yumurta, Süt ve Rice olabilir GoodsGood için:

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); 
İlgili konular