Nếu tôi muốn một hàm tạo chỉ có thể truy cập từ các lớp con tôi có thể sử dụng từ khóa protected
trong hàm tạo.Làm cách nào để tạo một hàm tạo chỉ có thể truy cập bởi lớp cơ sở?
Bây giờ tôi muốn điều ngược lại.
Lớp con tôi phải có một hàm tạo có thể truy cập được bởi lớp cơ sở của nó nhưng không phải từ bất kỳ lớp nào khác.
Điều này có thể thực hiện được không?
Đây là mã hiện tại của tôi. vấn đề là các lớp con có một hàm tạo công khai.
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)
{
}
}
Tôi không chắc chắn điều này là có thể, một lớp cơ sở biết về các lớp học trẻ em chống lại sự hiểu biết của tôi về thừa kế –
@DanF Bạn nói đúng, nhưng một lớp 'BaseClassFactory' không biết về' Child1' và ' Child2' sẽ là bình thường, và sẽ có cùng một vấn đề. – hvd