说我有一个基类是这样的:你如何让成员无法进入子派生类?
public abstract class MyBaseClass
{
protected void MyMethod(string myVariable)
{
//...
}
}
然后我继承这个类在单独的程序:
public abstract class MyDerivedClass : MyBaseClass
{
static readonly string MyConstantString = "Hello";
protected void MyMethod()
{
MyMethod(MyConstantString);
}
}
我现在要确保从MyDerivedClass
继承任何其他类完成无法访问MyBaseClass.MyMethod()
方法。 (为了澄清,我仍然希望能够调用MyDerivedClass.MyMethod()
没有参数)
我试过使用protected internal
但没有奏效。
更新:我试图做到这一点,因为我正在处理的应用程序有一堆使用基类的单独程序。有5种不同的“类型”的程序,每个都执行一个特定的,独立的功能,但它们都有一些我想要抽象到这个基类中的通用代码。通用代码是99%相同的,只是略有不同,这取决于程序调用它的类型。这就是为什么我有我的基类在示例中采用字符串参数,然后消失在派生的基类中,因为该类知道它执行角色x,因此它会相应地告知其基类。
你的意思是说你不希望他们叫它,或者你不希望它们覆盖它吗? –
@MthetheWWatson两者。 – Logan
你无法阻止它被调用。 –