基类用户应该访问原始方法
class A
public init()
派生类用户应该只访问派生方法。
class B
public init(int info)
我不能使用“覆盖”,因为有不同的签名。 我有哪些选项可以使派生类用户看不到这两种方法。
注释。 总而言之,我只需要两个共享一些代码的类。继承不是必须的。 但是 B 的用户的简单性是首要任务。
最佳答案
这是一个很大的代码味道(并且违反了一些基本的 OOP 原则)并且据我所知,不能用任何语言完成。在 OOP 中,B
的实例是 A
的实例;这是polymorphism .因此,如果 A
有一个名为 init
的不接受任何参数的公共(public)方法,那么 B
也是如此。
你这样做是为了什么?
编辑:现在您已经添加声明继承不是必须的编辑,只需使用 composition分享代码。例如,为 B
提供 A
的私有(private)实例。
关于c# - 我想覆盖 C# 中的一个方法,但我有不同的签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1367789/