类的派生和可访问性
本文关键字:访问 派生 | 更新日期: 2023-09-27 18:01:21
我有这个:
class Class1
{...}
public class Class2 : Class1
{
public void myMethod(){};
}
var sth = new Class2();
现在,我想做sth.myMethod()
,但是这个方法是不可访问的,为什么?如何解决这个问题?(我不想通过使Class1
公开来解决这个问题)
不允许。编译器会给出如下错误:
可访问性不一致:基类'YourNamespace '。Class1'类比'YourNamespace '类更难访问。Class2 '
你不能从一个可访问性比你所公开的类低的类继承。
在这种情况下,最好的选择是使用组合而不是继承。
public class Class2
{
private Class1 class1 = new Class1(); // Create an instance instead of inheriting...
public void MyMethod()
{
}
}