问题标签 [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.
ruby-on-rails - 单表继承发现问题
我有以下 3 个 rails 类,它们都存储在一个表中,使用 rails 的单表继承。
如果我有一个StockThingTemplate
ID ,150
那么我在逻辑上应该能够做到这一点:
事实上,这有时是有效的
当它工作时,它会生成以下 SQL 查询:
当它不起作用时,它会生成以下 SQL 查询:
sql 正在做它应该做的事情,但问题是,为什么它一次生成一组 SQL,而另一次生成另一组不同的 SQL。它实际上是完全相同的代码。
笔记:
- 我在轨道上 1.2
- 我已经
require 'stock_thing_template'
在不同的地方尝试过。它要么没有效果,要么导致其他问题
python - “超级”在 Python 中做了什么?- super().__init__() 和显式超类 __init__() 之间的区别
有什么区别:
和:
我已经看到super
在只有单一继承的类中被大量使用。我可以理解您为什么要在多重继承中使用它,但不清楚在这种情况下使用它有什么优势。
c# - 如何继承构造函数?
想象一个有许多构造函数和一个虚方法的基类
现在我想创建一个覆盖虚拟方法的后代类:
还有另一个做更多事情的后代:
我真的必须将所有构造函数从 Foo 复制到 Bar 和 Bah 吗?然后,如果我在 Foo 中更改构造函数签名,我是否必须在 Bar 和 Bah 中更新它?
有没有办法继承构造函数?有没有办法鼓励代码重用?
xaml - 如何正确继承 Silverlight 中 XAML 中定义的用户控件
如果我有一个我编写的用户控件(在 Silverlight 中),它使用 XAML 来定义它的外观,我该如何制作它的自定义版本?
即我有 MyControl.xaml & MyControl.xaml.cs
如果我想要一个“SpecializedControl”子类,我需要做什么?我假设我只是创建一个新的代码文件,然后从 MyControl 继承。但是如果我想改变基类的外观怎么办——那我该怎么办?
python - Python继承 - 如何禁用函数
在 C++ 中,您可以通过在子类中将其声明为私有来禁用父类中的函数。如何在 Python 中做到这一点?IE 如何从孩子的公共界面隐藏父母的功能?
c++ - C++父类调用子虚函数
我想要一个纯虚拟父类来调用函数的子实现,如下所示:
这应该可以,但我得到一个未链接的错误:/ 这是使用 VC++ 2k3
或者它不应该工作,我错了吗?
asp.net - 从 asp:Image 或 asp:ImageButton 转换?
我在控件中得到了这个逻辑来为图像创建正确的 url。我的控件基本上需要显示图像,但 src 实际上是基于指向图像服务器的不同参数的复杂字符串。
所以我们决定创建一个从 asp:Image 派生的控件 MyImage - 它就像一个魅力。现在我需要相同的逻辑,但我的图像现在需要响应点击。我的意思是 - 'MyImage' 用于在网站上显示图像,但在极少数情况下,我希望它是可点击的。
我想我有三个选择。
- 将 MyImage 更改为从 asp:ImageButton 而不是 asp:Image 派生。
- 将 MyImage 中的所有代码复制到新的 MyClickImage 中并从 asp:ImageButton 派生。
- 在 MyImage 上包装逻辑以添加超链接,为该超链接实现 IPostbackHandler 并添加处理事件的逻辑。
显然,我非常想避免使用选项 2),因为我必须维护两个几乎相同的控件。我看到的选项 1) 的问题(也许我错了?)是网站上所有不应点击的图像将自动变为可点击。选项 3) 似乎过于复杂,因为我必须手动维护状态、事件和构建链接。
我正在寻找一个快速的答案,比如'你很愚蠢,当你不希望它可点击时,只需将属性'x'设置为 false' - 但如果我没记错的话,它并不是那么明显,当然是更详细的答案会很好:)
编辑:添加了第三个选项 - 我忘了把它放在首位:)
c++ - C++ 中的继承
这是我的问题:我在 .h 文件中定义了一个虚拟方法,我想在从基类继承的类中调用它。可悲的是,派生类中的方法没有被调用。有没有更好的方法来实现我正在尝试做的事情?
这是我的嗡嗡声课
ofxSOBuzz.cpp
然后在另一个类中,我尝试这样称呼它:
在上面的方法中,我需要能够传入多种对象中的一种,这些对象都扩展了 ofxBaseSndObj 对象。任何建议或指示将不胜感激。谢谢!
python - python属性和继承
我有一个带有属性的基类(get 方法),我想在子类中覆盖该属性。我的第一个想法是这样的:
这不起作用(子类 bar.age 返回 11)。我找到了一个有效的 lambda 表达式解决方案:
那么这是使用属性并在子类中覆盖它们的正确解决方案,还是有其他首选方法可以做到这一点?
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
?