繁体   English   中英

如何访问 function,其访问修饰符受保护并存在于 class 中,该 class 继承自 c# 中的另一个 class?

[英]How to access to a function whose access modifier is protected and exists in a class that inherits from another class in c#?

    public class a {

    protected virtual int mult(int x)

    {

    return x*x ;

    }

    }

    public class b : a

    {

    protected override int mult(int x) { return x*x*x ; }

    }

    internal class Program { static void Main(string[] args) {

    b jack = new b();

    int v = jack.mult(5);    // error

    // so how can i access to mult() in main class without change access modifier to public ??????

    } }

如何访问 function,其访问修饰符受保护并存在于 class 中,该 class 继承自 c# 中的另一个 class?

请注意, mult function 在 class a和 class b中都被声明为protected ,这意味着它只能由 class 或其派生类中的代码访问。 由于ba的派生 class,因此b中的代码可以访问mult function。

如果要从bb a子类以外的 class 访问mult function,则需要将访问修饰符更改为public或在bb a子类中提供调用mult function 的公共方法。

在这种情况下,您在Main方法中执行所有这些操作,该方法位于ab之外的其他 class 中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM