问题标签 [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 投票
5 回答
70 浏览

java - 继承隐藏方法

我有一个具有 4 个方法的接口和一个实现该接口的类。问题来了:“我怎样才能从接口中只继承其中的两个方法,而我的类不会变成抽象的?”

0 投票
1 回答
186 浏览

c# - 在 C# 中结合方法隐藏和方法覆盖

我只是找不到令人满意的解释。所以我认为在 SO 上发布这个会有所帮助。

当我们结合时会发生什么method hiding and overriding in C# ?

对于以下示例:

我理解的输出

在此处输入图像描述

这是我对C#new的理解override

New- 它隐藏了基类方法。因此,即使基类引用变量指向派生类对象,如果派生类隐藏了方法,输出也将只是基类输出。

Override- 它覆盖了基类方法。因此,即使基类引用变量指向派生类对象,如果派生类覆盖该方法,输出也将是派生类输出。

但是这里怎么可能连BaseClassA引用变量都指向一个DerivedClassC对象并打印DerivedClassB输出呢?

请用简单的话解释一下。

0 投票
1 回答
92 浏览

ruby - 替换代码片段中的类和变量名称

我想在 CV 中插入我的代码的一些要点。为了不知道这段代码是关于什么的,我想用一些随机字符串自动替换所有类、方法和变量名称(使用一些脚本或在线创建者?),这样我就可以显示“我是如何编写的”,但我没有'不显示真正的功能。

我想改成:

或者也许有人知道更好的方式来向其他人展示“我的代码看起来如何,但没有向他展示功能”?

提前致谢

0 投票
3 回答
64 浏览

c# - 方法隐藏和覆盖调用决策

在基于类型引用对象的方法覆盖的情况下,将决定保持方法调用。在方法隐藏的情况下,将根据对象方法调用的类型来决定。

谁能解释一下覆盖+隐藏中的方法调用决策。

#1 和 #2 调用 Derived.DoIt 因为运行时多态性。

#4 称为 Derived.DoIt,因为 d 是 Derived 类型(方法隐藏)。

但是为什么#3 调用 Derived.DoIt。

在c#中覆盖加隐藏的情况下调用顺序是什么?

提前致谢

0 投票
1 回答
749 浏览

java - 使用android studio IDE隐藏jar中方法的实现

我使用 Android Studio 构建了一个 jar,当我在我的演示项目中使用这个 jar 时,当我从我的演示项目中打开一些类时,我能够看到类中方法的实现,当我打开 My SDKClass(在罐子里)。

我想要这样的东西

0 投票
2 回答
797 浏览

c# - 无法隐藏继承的成员编译器错误

我想做:

但由于某种原因,我收到了编译器错误:

CS0533 'Concrete.Execute()' 隐藏继承的抽象成员 'Program.Base.Execute()

我过去隐藏了很多成员,但从未遇到过这种情况,对此我感到很困惑。在 MSDN 和网络上花了很长时间,但找不到任何关于这种行为的信息。

我非常感谢您对这个问题的任何见解。

这是小提琴

0 投票
0 回答
61 浏览

c# - 为什么使用 new 关键字“隐藏”基类中的虚方法,而不是“公开”

来自MDSN

“如果派生类中的方法以 new 关键字开头,则该方法被定义为独立于基类中的方法。”

“然后派生类可以使用 override 关键字覆盖基虚拟方法,或者使用 new 关键字将虚拟方法隐藏在基类中。”

为什么使用 new 关键字“隐藏”基类中的虚方法,而不是“公开”?“隐藏”不意味着不会被使用吗?结果表明,当派生类中使用new关键字时,基类中使用了虚方法('exposed'而不是'hidden')。

0 投票
1 回答
144 浏览

java - Liskov 的替换原则与 JAVA 中的覆盖有何关系?完全隐藏和覆盖之间有什么区别?

在编程语言中,如果您希望子对象充当父对象的替代品,并且它仍然不应该失去自己的身份(作为子对象),则必须获得父对象的许可。这就是为什么我们在 C# 或 C++ 中将这些方法设为虚拟的原因。这变成了一个完全的隐藏。完全隐藏在java中被认为是覆盖吗?99% 的时间我在这里有错误的概念,因为我认为我只是在考虑隐藏它。一个被覆盖的函数可以像只关注 JAVA 的那样完全隐藏吗?

0 投票
2 回答
5876 浏览

c# - 单击 C# WPF 应用程序隐藏按钮

我被要求在 VS 2013 中创建一个 C# WPF 应用程序,场景如下。在应用程序开始时,必须出现一个带有两个按钮的表单。在顶部按钮上,必须写入文本“Button 1”,在底部按钮上必须写入文本“Button 2”。第一次,当按钮 1 或按钮 2 中的任何一个被单击时,它将消失,而另一个按钮将保持不变。例如,用户第一次单击按钮 1,然后按钮 1 将消失。按钮 2 将保持不变。现在窗口上只有一个按钮,即按钮 2。单击按钮 2 时它将消失,而按钮 1 将重新出现在窗口中。现在,如果用户单击按钮 1,它将再次消失,按钮 2 将重新出现。此过程可能会无限期地进行,直到通过单击关闭按钮终止应用程序。

我已经创建了所有东西,但 button1.Visible=true; 无法输入 VS 正在生成警告“sytem.windows.control.button 不包含 Visible 的定义。

我需要帮助

0 投票
2 回答
275 浏览

c# - 传递给 UserControl 的继承 ViewModel 被视为子 ViewModel

我有一个 View MainWindow.xaml,其中包含在 Button.xaml 中定义的两个按钮。按钮绑定到IsVisible定义按钮是否可见的属性。

MainWindow.xaml:

按钮.xaml:

对于按钮,我有两个 ViewModel:ButtonViewModelButtonViewModelChild.

ButtonViewModelChild继承自ButtonViewModel。两者都提供IsVisible属性:

按钮视图模型:

ButtonViewModelChild:

MainWindow.xaml 的 ViewModel 包含一个属性ButtonViewModel1ButtonViewModel2. 这些属性如下所示:

ButtonViewModel如果用作按钮的 DataContext,则该按钮应该是不可见的,如果使用,则应该是可见的ButtonViewModelChild

我假设使用 ButtonViewModel1 作为 DataContext 的按钮得到 a ButtonViewModel,另一个按钮得到 a ButtonViewModelChild。所以第一个按钮将不可见,而第二个按钮将不可见。两个按钮都是可见的。WPF 在这里做什么?显然,它两次都使用了实例的继承视图。有没有办法告诉 WPF 使用属性的返回类型而不是创建的实例类型?

我知道方法隐藏不是最佳实践。我可能会更改设计,但我很好奇为什么结果不如预期。