【问题标题】:Class derivation and accessibility [duplicate]类派生和可访问性[重复]
【发布时间】:2013-02-27 19:30:59
【问题描述】:

我有这个:

class Class1
{...}

public class Class2 : Class1
{
   public void myMethod(){};
}


var sth = new Class2();

现在,我想做sth.myMethod(),但是那个方法无法访问,为什么?如何解决? (我不想通过公开Class1 来解决这个问题)

【问题讨论】:

  • post 包含与您的问题相关的信息。
  • 如果你想让它的子类公开,你必须公开基类。

标签: c# .net


【解决方案1】:

这是不允许的。编译器会给出如下错误:

可访问性不一致:基类“YourNamespace.Class1”的可访问性低于类“YourNamespace.Class2”

您不能继承可访问性低于您要公开的类的类。

在这种情况下,最好的选择是使用组合而不是继承。

public class Class2
{
    private Class1 class1 = new Class1(); // Create an instance instead of inheriting...

    public void MyMethod()
    {
    }
}

【讨论】:

  • 好的,谢谢您的信息。 :)
猜你喜欢
  • 2011-08-27
  • 1970-01-01
  • 2015-03-22
  • 1970-01-01
  • 1970-01-01
  • 2017-10-30
  • 2010-09-21
  • 2021-05-23
  • 1970-01-01
相关资源
最近更新 更多