问题标签 [subclass]

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 投票
9 回答
9441 浏览

objective-c - Objective-C 中的子类化是一种不好的做法吗?

在阅读了大量博客、论坛条目和几个 Apple 文档之后,我仍然不知道在 Objective-C 中进行大量子类化是否是明智之举

以下面的案例为例:

假设我正在开发一个包含很多元素的益智游戏。所有这些元素都具有一定数量的相同行为。然后,在我的元素集合中,不同的元素组共享相同的行为,将组与组区分开来,等等......

所以,在确定什么从什么继承之后,我决定子类化。为什么我不应该? 考虑到使用此模型可以轻松调整一般行为,我认为我完成了面向对象编程的目标。

但是, - 这是我的问题的来源 - Apple 提到使用委托、数据源方法和非正式协议来支持子类化。这真的让我大吃一惊,为什么?

好像有两个阵营。那些支持子类化的,那些不支持的。这显然取决于个人口味。我想知道大规模子类化而不是大规模子类化的利弊是什么

总结一下,我的问题很简单:我说的对吗?为什么或为什么不呢?

0 投票
4 回答
16993 浏览

qt - Qt 信号和继承问题

我对使用 Qt 编程比较陌生,并且有一个问题。简洁版本:

如何继承超类中定义的信号?

我正在尝试继承其他人精心制作的 QTWidgets 以更改一些默认行为:

问题出在 QObject::connect 行。我想做的是将rotationChanged SIGNAL(来自qwt3D_plot.h)连接到本地函数/SLOT - “myRotationChanged”。但是,每当我这样做时,在运行时我会得到:

Object::connect: 没有这样的信号 matLinePlot::rotationChanged(double, double, double)

在 C:...\matrixVisualization.h。当然,我知道那rotationChanged不是 in matrixVisualization.h- 它是 in qwt_plot3D.h,但我认为既然我继承了Plot3D一切应该没问题。但是,现在我想起来了,因为 SIGNAL 和 SLOT 是宏,我认为MOC不知道/不关心继承。

这引出了我的问题——因为 MOC 和 SIGNALS / SLOTS 似乎不了解继承等:我如何子类化在其他地方定义的小部件并访问小部件的信号?

我有很多关于如何使用封装来完成这样的事情的例子,但恐怕我不明白如何用继承来做到这一点。

对不起,如果这是一个荒谬的问题 - 我觉得我错过了一些明显的东西。

0 投票
4 回答
40298 浏览

iphone - 使 UIView 的背景成为没有子类的渐变

有没有办法使 UIView 的背景成为渐变而不继承它?我也不想使用图像文件来完成此操作。仅仅为了为背景绘制渐变就必须继承 UIView 似乎很迟钝。

0 投票
1 回答
3493 浏览

c# - Hibernate/NHibernate:如何将子类作为超类的实例持久化

我有两个类我想通过 NHibernate 坚持: - Cat,它有一个名字和一个 Id, - Kitten,它是 Cat 的一个子类(没有额外的公共属性)。

出于愚蠢的原因,我想知道是否可以仅映射 Cat ?因此,当我坚持 Kitten 时,它被保存为 Cat,当我重新加载它时,它被加载为 Cat。

附加限制: - 尝试时,NHibernate 崩溃了,因为它不认识小猫。- 但是我不想添加鉴别器值,因为我不希望 Hibernate 实例化 Kitten 子类。

非常感谢你!

编辑:我忘了写使用显式 ISession.Save("Cat", kitten) 有效。我的问题发生在级联保存期间。

0 投票
7 回答
3420 浏览

oop - 通过工厂方法将参数传递给特定的子类

假设我有一个抽象类 Drink 和一个工厂方法,它选择在运行时创建的饮料类型(葡萄酒、啤酒等)。

每个 Drink 都需要一些参数来正确初始化自己。其中一些是所有饮料共有的;例如,它们可能都需要 DrinkConfig 参数。

但每种饮料也可能有其独特的要求。也许 Wine 需要一个侍酒师辅助对象来初始化自己。Beer 不需要它,但它可能需要它自己的辅助对象。

那么我应该将什么传递给工厂方法?当我调用它时,我拥有所有可用的辅助对象,所以我可以将它们全部传递给工厂。但这最终可能会引发很多争论。有没有更好的方法来设计这个?

编辑:假设我不能只在工厂中创建辅助对象;它们只能从呼叫者那里获得。

0 投票
2 回答
13693 浏览

perl - Perl 5 中的父级和基级有什么区别?

似乎有一个名为的新 pragmaparentbase. 什么parent保证了新的(非核心)模块?我错过了什么?

0 投票
2 回答
1450 浏览

c++ - 为什么这种返回类型不起作用?(C++)

当我尝试使用我的迭代器类时

作为运算符重载中的返回类型,

我收到这些错误:

注意:container_def.h 是我的列表和迭代器类的头文件,我不知道什么是 souceannotations 或 crtdefs。

0 投票
9 回答
50328 浏览

java - 是否可以在超类对象上调用子类的方法?

Animal 是 Dog 的超类,Dog 有一个叫做 bark 的方法

考虑以下:

会发生什么?

  1. 不允许分配
  2. 允许调用 bark 并在运行时打印“woof”
  3. 允许调用 bark,但没有打印任何内容
  4. 对 bark 的调用导致编译时错误
  5. 对 bark 的调用导致运行时错误

我说 2 因为我们正在检查对象是否是狗;因为 dog 是其中包含 bark 方法的类,如果是,则我们调用它,它将打印出:s

我的理解在这里正确吗?

0 投票
2 回答
3193 浏览

actionscript-3 - 从子类调用超类中的函数

我在 Actionscript 3 中有一个小项目,如果可以从子类调用超类中的代码,一切都会变得容易得多。

这是项目:

汽车游戏
        车

是否可以从 Car 类调用 CarGame 类中的函数?

0 投票
1 回答
4177 浏览

python - 将类实例转换为子类

我正在使用boto来管理一些EC2实例。它提供了一个实例类。我想对它进行子类化以满足我的特殊需求。由于 boto 提供了一个查询接口来获取您的实例,因此我需要在类之间进行转换。该解决方案似乎可行,但更改类属性似乎很狡猾。有没有更好的办法?