问题标签 [method-hiding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
614 浏览

c# - 接口继承-从父接口隐藏方法-为什么我可以在实现类中同时拥有这两种方法?

我试图了解接口的继承是如何工作的。当一个接口继承另一个接口但有一个具有相同签名的方法时,编译器会发出警告,指出基成员被隐藏(这似乎合乎逻辑)。

但是,当我稍后在一个类中实现子接口时,我必须实现具有相同签名的父接口和子接口方法,这让我感到困惑......我认为当父成员隐藏时我需要实现只有子接口方法?

(我在查看IEnumerableIEnumerable<T>界面时遇到了这个问题)

0 投票
1 回答
381 浏览

c++ - 类型别名是否用作函数签名的函数参数类型的一部分?

考虑一个例子:

根据[namespace.udecl]/15

当 using-declaration 将基类中的名称带入派生类范围时,派生类中的成员函数和成员函数模板会覆盖和/或隐藏具有相同名称、参数类型列表、cv 的成员函数和成员函数模板-qualification 和 ref-qualifier(如果有)在基类中(而不是冲突)

所以显然模板参数不应该参与成员函数隐藏。但是在我们的示例中,模板参数使用别名被带到签名中。尽管如此, clang似乎并不认同 alias 是函数参数类型列表的一部分并声称:

我故意省略了 gcc,因为它涉及隐藏过程中的模板参数列表。叮当是对的吗?

0 投票
1 回答
1945 浏览

java - 为什么父类的静态方法隐藏在子类中?

这是伪代码

此代码编译成功。拥有 @Override 注释会引发编译错误。所以请解释一下关于方法隐藏的概念。Parent 静态方法是否在 Child 中继承?

0 投票
1 回答
409 浏览

c# - 基本虚拟方法未调用或调用两次

这是我的代码。

版本 1base.FillAttributs(rdr)FillAttributs类和子类的 , 被调用两次。没有,只有FillAttributs子类的被调用两次。

版本 2base.FillAttributs(rdr):我删除virtual并替换overridepublic new void FillAttributs(IDataRecord rdr). 所以它有效,但我不确定这是否是一个好习惯。

版本 3:我将FillAttributs基类重命名为FillEventAttributs,将 chil 类重命名为FillControlAttributs.

去这里的正确方法是什么?或者我应该使用另一种方式来做到这一点?

0 投票
1 回答
32 浏览

polymorphism - C#中的覆盖和隐藏方法

假设我们定义了两个类(A 和 B):

如果我们写:

"B" ( namespace.B) 将显示在控制台中。
也就是说,将调用 A 类 (System.Object.ToString()) 的隐式祖先的 ToString() 方法。
为什么调用 System.Object 类的方法,而不是 A 类或 B 类?

0 投票
1 回答
276 浏览

c# - 需要方法隐藏和方法覆盖

为什么在 C# 中开发了方法隐藏和方法覆盖?我不是在问他们的实施。我特别问的是发明者希望用语言创造这两种东西的场景。为什么方法隐藏在不同的场景中有用(代码示例)以及为什么没有。为什么方法覆盖在某些情况下效果很好,为什么在其他情况下效果不好。实际示例将不胜感激。请注意,我不是要求实施。

0 投票
4 回答
881 浏览

java - 为什么在覆盖该方法时调用超类方法?(来自 OCA 实践测试)

这些 OCA 练习题 (pdf)中的问题三:

输出是Writing...

我不明白为什么。作为ProgrammeroverridesWriter的 write 方法,我认为它应该调用 inProgrammer而不是 in的方法Writer

为什么?

0 投票
1 回答
30 浏览

c# - 无法理解“幕后”究竟隐藏了什么方法

我发现很难准确理解隐藏方法的作用。有人可以解释一下在使用方法隐藏时“幕后”发生了什么吗?

(1) 这到底是做什么的?

(2) 这些到底是做什么的?

先感谢您 :)

0 投票
4 回答
183 浏览

java - java中方法隐藏概念中“隐藏”一词的含义是什么?

这个问题已经提出来讨论与java中的静态方法相关的术语隐藏。每当在父类和子类中定义了具有相同签名的静态方法时,就说子类方法隐藏了父类中的方法。我的问题是关于隐藏的使用,因为我们知道静态方法将通过类名访问,或者如果我们尝试创建引用(这是一种不好的做法),方法将基于引用类型被调用。那么隐藏是如何出现的,以下面的代码为例:

有人可以解释一下子方法如何在这里隐藏父方法吗?(使用父引用调用父方法,那么隐藏是如何出现的)

0 投票
1 回答
81 浏览

c# - C# new 在派生类继承上没有按预期工作

给出下面的代码。我想知道为什么我的输出不是 BAB,而是 BAA

由于 r 现在是对类 B(obj2) 的引用,它应该输出 B,但它正在输出 A。