问题标签 [inheritance]

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 回答
661 浏览

ruby-on-rails - 单表继承发现问题

我有以下 3 个 rails 类,它们都存储在一个表中,使用 rails 的单表继承。

如果我有一个StockThingTemplateID ,150那么我在逻辑上应该能够做到这一点:

事实上,这有时是有效的

当它工作时,它会生成以下 SQL 查询:

当它不起作用时,它会生成以下 SQL 查询:

sql 正在做它应该做的事情,但问题是,为什么它一次生成一组 SQL,而另一次生成另一组不同的 SQL。它实际上是完全相同的代码。

笔记:

  • 我在轨道上 1.2
  • 我已经require 'stock_thing_template'在不同的地方尝试过。它要么没有效果,要么导致其他问题
0 投票
11 回答
259100 浏览

python - “超级”在 Python 中做了什么?- super().__init__() 和显式超类 __init__() 之间的区别

有什么区别:

和:

我已经看到super在只有单一继承的类中被大量使用。我可以理解您为什么要在多重继承中使用它,但不清楚在这种情况下使用它有什么优势。

0 投票
14 回答
188899 浏览

c# - 如何继承构造函数?

想象一个有许多构造函数和一个虚方法的基类

现在我想创建一个覆盖虚拟方法的后代类:

还有另一个做更多事情的后代:

我真的必须将所有构造函数从 Foo 复制到 Bar 和 Bah 吗?然后,如果我在 Foo 中更改构造函数签名,我是否必须在 Bar 和 Bah 中更新它?

有没有办法继承构造函数?有没有办法鼓励代码重用?

0 投票
4 回答
26103 浏览

xaml - 如何正确继承 Silverlight 中 XAML 中定义的用户控件

如果我有一个我编写的用户控件(在 Silverlight 中),它使用 XAML 来定义它的外观,我该如何制作它的自定义版本?

即我有 MyControl.xaml & MyControl.xaml.cs

如果我想要一个“SpecializedControl”子类,我需要做什么?我假设我只是创建一个新的代码文件,然后从 MyControl 继承。但是如果我想改变基类的外观怎么办——那我该怎么办?

0 投票
7 回答
25034 浏览

python - Python继承 - 如何禁用函数

在 C++ 中,您可以通过在子类中将其声明为私有来禁用父类中的函数。如何在 Python 中做到这一点?IE 如何从孩子的公共界面隐藏父母的功能?

0 投票
7 回答
17260 浏览

c++ - C++父类调用子虚函数

我想要一个纯虚拟父类来调用函数的子实现,如下所示:

这应该可以,但我得到一个未链接的错误:/ 这是使用 VC++ 2k3

或者它不应该工作,我错了吗?

0 投票
2 回答
358 浏览

asp.net - 从 asp:Image 或 asp:ImageButton 转换?

我在控件中得到了这个逻辑来为图像创建正确的 url。我的控件基本上需要显示图像,但 src 实际上是基于指向图像服务器的不同参数的复杂字符串。

所以我们决定创建一个从 asp:Image 派生的控件 MyImage - 它就像一个魅力。现在我需要相同的逻辑,但我的图像现在需要响应点击。我的意思是 - 'MyImage' 用于在网站上显示图像,但在极少数情况下,我希望它是可点击的。

我想我有三个选择。

  1. 将 MyImage 更改为从 asp:ImageButton 而不是 asp:Image 派生。
  2. 将 MyImage 中的所有代码复制到新的 MyClickImage 中并从 asp:ImageButton 派生。
  3. 在 MyImage 上包装逻辑以添加超链接,为该超链接实现 IPostbackHandler 并添加处理事件的逻辑。

显然,我非常想避免使用选项 2),因为我必须维护两个几乎相同的控件。我看到的选项 1) 的问题(也许我错了?)是网站上所有不应点击的图像将自动变为可点击。选项 3) 似乎过于复杂,因为我必须手动维护状态、事件和构建链接。

我正在寻找一个快速的答案,比如'你很愚蠢,当你不希望它可点击时,只需将属性'x'设置为 false' - 但如果我没记错的话,它并不是那么明显,当然是更详细的答案会很好:)

编辑:添加了第三个选项 - 我忘了把它放在首位:)

0 投票
6 回答
783 浏览

c++ - C++ 中的继承

这是我的问题:我在 .h 文件中定义了一个虚拟方法,我想在从基类继承的类中调用它。可悲的是,派生类中的方法没有被调用。有没有更好的方法来实现我正在尝试做的事情?

这是我的嗡嗡声课

ofxSOBuzz.cpp

然后在另一个类中,我尝试这样称呼它:

在上面的方法中,我需要能够传入多种对象中的一种,这些对象都扩展了 ofxBaseSndObj 对象。任何建议或指示将不胜感激。谢谢!

0 投票
11 回答
46004 浏览

python - python属性和继承

我有一个带有属性的基类(get 方法),我想在子类中覆盖该属性。我的第一个想法是这样的:

这不起作用(子类 bar.age 返回 11)。我找到了一个有效的 lambda 表达式解决方案:

那么这是使用属性并在子类中覆盖它们的正确解决方案,还是有其他首选方法可以做到这一点?

0 投票
2 回答
39974 浏览

java - 用Java中的通用参数覆盖方法?

我有一个抽象类Monitor.java,它由类EmailMonitor.java子类化。

方法:

Monitor.java中定义并且必须在EmailMonitor.java中被覆盖。

我目前在EmailMonitor.java中重写了该方法,如下所示:

但是,这会产生编译时错误:

Name clash: The method performMonitor(List<EmailAccount>) of type EmailMonitor has the same erasure as performMonitor(Lis<? extends MonitorAccount> emailAccounts) of type Monitor but does not override it

EmailAccount是 的子类MonitorAccount,因此(至少在我看来)以这种方式覆盖它是非常有意义的。看到编译器对我的逻辑不满意,我应该如何正确处理这个问题,同时仍然保持我的编译时间检查以确保所有调用都EmailMonitor.performMonitor()接收列表EmailAccount而不是其他类型的MonitorAccount