How to hide static method

耗尽温柔 提交于 2019-12-01 11:05:21

You can't, basically. Heck, if it's public then anyone can call it.

You could make it protected which would allow it to be called from within B or C but not elsewhere... but you still couldn't differentiate between B and C.

You could do it by creating another class, let's call it Special, that inherits A. Then you would make C inherit from Special and B inherit from A. Also, you would have the static method protected, that means only classes that inherited Special will have access to it.

class A
{
}
class Special : A
{
    protected static int Count()
}
class B : A
{
}
class C : Special
{
}

The only solution would be to change your class hierarchy. It's not worth the hassle and WTF moments you will get in code reviews it if you ask me.

class ABase
{
}
class A
{
   public static int Count()
}
class B : ABase
{
}
class C : ABase
{
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!