यदि मैं एक कन्स्ट्रक्टर चाहता हूं जो कि बाल कक्षाओं से केवल पहुंच योग्य है, तो मैं कन्स्ट्रक्टर में protected
कुंजी शब्द का उपयोग कर सकता हूं।मैं बेस क्लास द्वारा केवल कन्स्ट्रक्टर को कैसे सुलभ बना सकता हूं?
अब मैं विपरीत चाहता हूं।
मेरे बच्चे वर्ग में एक कन्स्ट्रक्टर होना चाहिए जिसे इसकी बेस क्लास द्वारा एक्सेस किया जा सकता है लेकिन किसी भी अन्य वर्ग से नहीं।
क्या यह भी संभव है?
यह मेरा वर्तमान कोड है। समस्या यह है कि बाल वर्गों में एक सार्वजनिक कन्स्ट्रक्टर होता है।
public abstract class BaseClass
{
public static BaseClass CreateInstance(DataTable dataTable)
{
return new Child1(dataTable);
}
public static BaseClass CreateInstance(DataSet dataSet)
{
return new Child2(dataSet);
}
}
public class Child1 : BaseClass
{
public Child1(DataTable dataTable)
{
}
}
public class Child2 : BaseClass
{
public Child2(DataSet dataSet)
{
}
}
मुझे यकीन नहीं है कि यह संभव है, विरासत की मेरी समझ के खिलाफ बाल वर्गों के बारे में जानने वाले बेस क्लास –
@DanF आप सही हैं, लेकिन 'चाइल्ड क्लास फैक्ट्री' क्लास जो 'चाइल्ड 1' और ' चाइल्ड 2 सामान्य होगा, और एक ही समस्या होगी। – hvd