मुझे वास्तव में यकीन नहीं है कि मैं वास्तव में क्या दिखता हूं या वास्तव में सार वर्गों और गुणों में कब उपयोग करता हूं, या गैर अमूर्त गुणों का उपयोग कब करता हूं। मैं एक साधारण उदाहरण बनाने की कोशिश करूंगा। मान लें कि मेरे पास यह है:सुनिश्चित नहीं है कि एक अमूर्त संपत्ति का उपयोग कब करें और
abstract class Human
{
public GenderType Gender { get; set; }
public string Name { get; set; }
public Date Born { get; set; }
public bool IsNerd { get; set; }
abstract public void Speak();
abstract public void Sleep();
abstract public void AnoyingPeopleOnStackOverflow();
//... so on
}
class Peter : Human
{
//Peter is special, he got a second name
//But thats all, everything else is the same as like on other humans
public string SecondName { get; set; }
//...override abstract stuff
}
क्या यह ठीक है? जैसा कि मैंने समझा, मुझे एक अमूर्त संपत्ति का उपयोग करने की ज़रूरत नहीं है अगर मैं इसे ओवरराइड नहीं करना चाहता हूं। और इस स्थिति में यह ठीक रहेगा, बस Speak
, Sleep
जैसी विधियां और इसी तरह सार होना चाहिए।
अब, यदि यह ठीक है, तो मुझे कब एक अमूर्त संपत्ति का उपयोग करना चाहिए या नहीं?
"जब मैं एक अमूर्त संपत्ति का उपयोग कब करूं या कब करना चाहिए" --- जब आप यह कहना चाहते हैं कि उस बच्चे वर्ग को एक विशिष्ट विधि कार्यान्वयन प्रदान करना है – zerkms
1) यदि यह जावा था, तो शायद कोई समस्या नहीं होगी। आप शायद एक "इंटरफ़ेस" का उपयोग करेंगे। यह अनिवार्य रूप से आप सी # में क्या कर रहे हैं, है ना?2) मेरी व्यक्तिगत भावना यह है कि अगर इसे "अनुबंध" का हिस्सा बनने की आवश्यकता है, तो इसे अपने अमूर्त वर्ग में घोषित करना उचित है। दूसरे शब्दों में, मुझे लगता है कि आपने जो किया है वह बिल्कुल ठीक है। IMHO ... – paulsm4
@ paulsm4 आप सी # के साथ भी ऐसा कर सकते हैं। –