我们可以隐藏派生类的公共方法,以便在C#的Main()函数中无法访问它。我们无法更改派生类方法的访问器。
public class A
{
public void Add()
{
}
}
public class B : A
{
public void Multiply()
{
}
}
在C#中的main()方法
B b = new B();
b.mulitply(); // should give compile time error... Like method not founded.
我们有什么方法可以做到。
答案 0 :(得分:5)
绝对不是。这是公共课的公共方法。如果您不能使用它,则不应公开。
(顺便说一句,我看不出它来自A
的事实是如何相关的。)
答案 1 :(得分:1)
这个请求没有任何意义。 B类声明方法Multiply
。为什么这种方法会被隐藏?隐藏谁?
答案 2 :(得分:0)
为什么不把这个方法设为私有?
public class B: A
{
private void Multiply()
{
}
}
如果你绝对无法改变B,那么我唯一能想到的就是创建一个完整的适配器类。
public C
{
private B instance;
private void Multiply(){}
public void Add()
{
B.Add();
}
}
这将迫使你“复制”B中的所有方法,除了你想要的那个。
如果您绝对需要将该类设为“B”,则必须使用反射器反转引擎并将公共字段更改为私有或受保护。
答案 3 :(得分:0)
公开的功能点是它可以在其他地方访问。
你可以私下继承吗? (没有意义)或者将成员声明为私有或受保护,因此派生类不会继承它。