问题标签 [subclassing]

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 投票
3 回答
12504 浏览

java - 为什么不能降低 Java 子类中方法的可见性?

为什么在子类中重写方法时降低方法的可见性时编译器会给出错误消息?

0 投票
1 回答
573 浏览

c - 我没有收到来自其他应用程序的 WM_GETMINMAXINFO 消息

在我的 C-Dll 中有一个 Windows 挂钩:

使用此回调方法:

我收到除了 WM_GETMINMAXINFO 消息之外的所有 Windows 消息。我想修改窗口的最大尺寸。我该如何解决这个问题?

非常感谢!
安迪

0 投票
1 回答
540 浏览

uiview - 没有子类化的重载方法(特别是drawRect:)

我正在使用容器 UIView 来容纳 UIImageView 并进行一些自定义绘图。在这一点上,我想在我的子视图上做一些绘图。所以覆盖 drawRect: 在我的容器中 UIView 只会在子视图下方绘制。

有没有办法在我的子视图中重载drawRect:而不对其进行子类化?

我认为方法调配可能是答案,但我希望不是。

(注意:是的,让 UIView 成为 UIImageView 的子视图会更聪明,但不幸的是我现在犯了我的错误。)

0 投票
2 回答
2352 浏览

c++ - 选择正确的子类以编程方式实例化

好的,上下文是一些序列化/反序列化代码,它将字节流解析为更易于使用的“对象”表示(反之亦然)。

这是一个带有基本消息类的简化示例,然后根据“类型”标头,存在更多数据/函数,我们必须选择正确的子类来实例化:

在一个真实的例子中,会有数百种不同的消息类型,并且可能有几个级别或层次结构,因为一些消息彼此共享字段/功能。

现在,要解析一个字节字符串,我正在做类似的事情:

但是我觉得这个巨大的开关不是很优雅,而且我有两次关于哪个消息具有哪个“类型值”的信息(一次在构造函数中,一次在此开关中)它也很长......

我正在寻找一种更好的方法,它会更好......如何改进这个?

0 投票
1 回答
480 浏览

delphi - Delphi:对控件进行子类化和恢复的适当时机?

开始子类化控件的正确地点/时间是什么?

恢复原始窗口 proc 的适当时间是什么时候?

现在我在表单创建期间子类化:

我在表单销毁期间恢复子类化:

这很好用,只要我不使用ThemeManager,它的子类控制自己。一旦尝试对 ThemeManager 子类的控件进行子类化,我就会遇到非常讨厌的错误。

我认为这是因为我不应该在Create期间启动子类并在Destroy期间恢复它。那么在 Delphi 中对控件进行子类化和取消子类化的正确记录时间是多少?

0 投票
1 回答
889 浏览

c# - 子类化时,用户控件中的公共数据网格视图在设计时被“锁定”

我有一个用户控件,其中包含一个标签和一个文本框控件。使用此类,我将文本框设置为将其修饰符设置为“public”,因此当我将 THIS 控件子类化时,我可以在需要的每个实例中直接访问文本框的属性等。没问题。

现在,问题。我做完全相同的事情,但在用户控件中使用 dataGridView 控件(和其他一些控件)。将 ITs 修饰符设置为 public 以在下游派生此用户控制。现在,我尝试将此控件派生为新控件,并且不能直接触摸 dataGridView 并直接添加列、大小调整等。

0 投票
3 回答
1723 浏览

c# - C#:将标签注入本机应用程序的状态栏窗格以显示

我正在编写一个在本机 Windows 应用程序中运行的 .Net COM DLL。

我正在尝试在此应用程序的状态栏中注入一个额外的窗格,并且它没有任何特定的实现可以这样做,因此我正在尝试自己对应用程序的状态栏进行子类化。

我正在使用 Win32 API SetParent() 将标签控件的父级从 .Net 表单切换到 msctls_statusbar32 实例。我使用标签是因为它是最接近原生“静态”类控件的实现,无需编写自己的控件即可找到。

不知何故,我什至设法让 NativeWindow 成功连接到状态栏和标签的消息(尽管目前它只是将它们全部传递给下一个 WndProc),并且我已经为标签的窗口分配了匹配的样式和 styleExs ,并且我可以将我的标签视为子标签,并将 msctls_statusbar32 作为其父标签。一切看起来都应该正常工作,但事实并非如此。我的控件未显示在父应用的状态栏中。

我不明白为什么它没有出现。几乎我能想到的所有内容都正确匹配——当然,我的标签类是“WindowsForms10.STATIC.app.0.378734a”而不是“静态”,但除了它在正确的进程和线程上之外,还有匹配的窗口样式(至少是十六进制值...... Spy++ 似乎以不同的方式枚举它们),并且出于所有目的几乎与其余控件融为一体。有人知道还需要做什么才能使其可见吗?

(我最初选择了 CreateWindowEx 并设置 WNDPROC 回调,但我无法让应用程序工作......它会冻结一分钟左右然后解冻,我会注意到我的窗口从窗口树中消失了)

谢谢!

0 投票
1 回答
2740 浏览

c# - Fluent NHibernate 中的自动映射子类

我在获得流利的 nhibernate 以正确映射我拥有的类层次结构时遇到了一些麻烦。

假设我有以下类结构

所有这些类都映射到同一个表,所以我使用了一个表每个类层次结构的策略。

我的自动地图覆盖如下所示:

在我的 AutoPersistenceModel 生成代码中,我有以下内容

2 个问题: 1. 我是否应该对 StartAction 和 CeaseAction 类进行自动映射覆盖,并将 .Subclass 方法放在那里而不是像我在这里的 MedicationAction 自动映射覆盖中?2. 在此自动映射产生的 hbm 中,我得到以下内容(摘录):

如您所见,鉴别器列和值被完全忽略。如果我删除该行 (s => s.SubclassStrategy = t => SubclassStrategy.Subclass) 我得到正确的鉴别器列,但是所有子类元素都成为连接子类元素。如何获得子类策略以实际获取我的鉴别器列和值?我正在使用 Fluent NHibernate 1.0 RTM。

我知道如何使用手动映射来完成这项工作,但是这些类中还有很多其他信息是自动映射的,我想保留它。

0 投票
4 回答
838 浏览

c# - 以抽象类的子类数组作为参数的构造函数

我正在为游戏开发玩家库存系统。

我有一个 struct Slot,它有一个 List<Loot> 集合,表示其中允许使用哪些类型的项目。抽象类Loot是所有可抢劫物品的子类 - 即:将是Slot结构的有效内容值。

我想表达的是,一个Slot可以限制它可以包含哪些Loot子类。例如,如果Slot代表一个弹药容器,我希望它只包含作为弹药容器的Loot子类,例如“Quivers”和“Shot Pouches”(它将沿线某处子类化Container )。

战利品类

容器类

插槽结构

玩家库存

我不知道如何在PlayerInventory类的 Main 方法中的Slot构造函数调用中为 Loot 子类提供参数。

我希望这很清楚。提前致谢。

编辑

我能够使用 David Sieler 的方法和一些反射来解决这个问题(我的意思是让它编译)。

插槽结构

PlayerInventory 调用 Slot 构造函数

再次感谢大家的讨论。

0 投票
1 回答
1771 浏览

qt - 如何在 Qt QSlider 上绘制图片而不是滑块?

我创建了一个继承自 QSlider 的类。我想在滑块(抓取器)上画一张图片,而不是显示普通的。怎么做?

--

收到回复后,我找到了答案并发布了。出于对响应者的应有尊重,我将选择该答复。但是,我想共享代码,以便遇到相同问题的任何人都可以受益: