问题标签 [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.
c# - 接口继承-从父接口隐藏方法-为什么我可以在实现类中同时拥有这两种方法?
我试图了解接口的继承是如何工作的。当一个接口继承另一个接口但有一个具有相同签名的方法时,编译器会发出警告,指出基成员被隐藏(这似乎合乎逻辑)。
但是,当我稍后在一个类中实现子接口时,我必须实现具有相同签名的父接口和子接口方法,这让我感到困惑......我认为当父成员隐藏时我需要实现只有子接口方法?
(我在查看IEnumerable
和IEnumerable<T>
界面时遇到了这个问题)
c++ - 类型别名是否用作函数签名的函数参数类型的一部分?
考虑一个例子:
当 using-declaration 将基类中的名称带入派生类范围时,派生类中的成员函数和成员函数模板会覆盖和/或隐藏具有相同名称、参数类型列表、cv 的成员函数和成员函数模板-qualification 和 ref-qualifier(如果有)在基类中(而不是冲突)。
所以显然模板参数不应该参与成员函数隐藏。但是在我们的示例中,模板参数使用别名被带到签名中。尽管如此, clang似乎并不认同 alias 是函数参数类型列表的一部分并声称:
我故意省略了 gcc,因为它涉及隐藏过程中的模板参数列表。叮当是对的吗?
java - 为什么父类的静态方法隐藏在子类中?
这是伪代码
此代码编译成功。拥有 @Override 注释会引发编译错误。所以请解释一下关于方法隐藏的概念。Parent 静态方法是否在 Child 中继承?
c# - 基本虚拟方法未调用或调用两次
这是我的代码。
版本 1:base.FillAttributs(rdr)
基FillAttributs
类和子类的 , 被调用两次。没有,只有FillAttributs
子类的被调用两次。
版本 2base.FillAttributs(rdr)
:我删除virtual
并替换override
为public new void FillAttributs(IDataRecord rdr)
. 所以它有效,但我不确定这是否是一个好习惯。
版本 3:我将FillAttributs
基类重命名为FillEventAttributs
,将 chil 类重命名为FillControlAttributs
.
去这里的正确方法是什么?或者我应该使用另一种方式来做到这一点?
polymorphism - C#中的覆盖和隐藏方法
假设我们定义了两个类(A 和 B):
如果我们写:
"B" ( namespace.B
) 将显示在控制台中。
也就是说,将调用 A 类 (System.Object.ToString()) 的隐式祖先的 ToString() 方法。
为什么调用 System.Object 类的方法,而不是 A 类或 B 类?
c# - 需要方法隐藏和方法覆盖
为什么在 C# 中开发了方法隐藏和方法覆盖?我不是在问他们的实施。我特别问的是发明者希望用语言创造这两种东西的场景。为什么方法隐藏在不同的场景中有用(代码示例)以及为什么没有。为什么方法覆盖在某些情况下效果很好,为什么在其他情况下效果不好。实际示例将不胜感激。请注意,我不是要求实施。
java - 为什么在覆盖该方法时调用超类方法?(来自 OCA 实践测试)
从这些 OCA 练习题 (pdf)中的问题三:
输出是Writing...
。
我不明白为什么。作为Programmer
overridesWriter
的 write 方法,我认为它应该调用 inProgrammer
而不是 in的方法Writer
。
为什么?
c# - 无法理解“幕后”究竟隐藏了什么方法
我发现很难准确理解隐藏方法的作用。有人可以解释一下在使用方法隐藏时“幕后”发生了什么吗?
(1) 这到底是做什么的?
(2) 这些到底是做什么的?
先感谢您 :)
java - java中方法隐藏概念中“隐藏”一词的含义是什么?
这个问题已经提出来讨论与java中的静态方法相关的术语隐藏。每当在父类和子类中定义了具有相同签名的静态方法时,就说子类方法隐藏了父类中的方法。我的问题是关于隐藏的使用,因为我们知道静态方法将通过类名访问,或者如果我们尝试创建引用(这是一种不好的做法),方法将基于引用类型被调用。那么隐藏是如何出现的,以下面的代码为例:
有人可以解释一下子方法如何在这里隐藏父方法吗?(使用父引用调用父方法,那么隐藏是如何出现的)
c# - C# new 在派生类继承上没有按预期工作
给出下面的代码。我想知道为什么我的输出不是 BAB,而是 BAA
由于 r 现在是对类 B(obj2) 的引用,它应该输出 B,但它正在输出 A。