c# - 我想覆盖 C# 中的一个方法,但我有不同的签名

标签 c#

基类用户应该访问原始方法

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/

相关文章:

c# - 使用未分配的局部变量 'dictionary'

c# - 重复进程启动未按预期使用react

c# - 不使用类的 JSON 反序列化? (网络服务客户端)

C# IDisposable、Dispose()、锁(this)

c# - 使用 XAML 数据绑定(bind)将 Line 的每一端绑定(bind)到 Canvas 上两个形状的中心

c# - 无法将运算符 '<' 应用于类型 T 和 T 的操作数

c# - Mono 中的全局热键

c# - MVC 中下拉列表的 if else 条件

c# - 无法计算表达式 - Linq 查询只返回 null

c# - 如何检查Web服务器是否启动? (C#)