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

objective-c - 如何将“A类”转换为其子类“B类”-Objective-C

我正在使用一个定义和使用“ClassA”的框架,它是 NSObject 的子类。我想添加一些变量和功能,所以我自然地创建了“ClassB”,它是“ClassA”的子类

现在我的问题是这个。此框架中的许多方法返回我想转换为我的子类的“ClassA”实例。

例如采取这种方法:

现在在我的代码中我试试这个:

这运行得很好。没有编译或运行时错误或任何东西。但对我来说真正奇怪的是输出:

选角显然失败了。不知道此时发生了什么...... objB 被键入为“ClassB”,但它的 className 是“ClassA”,它不会响应任何“ClassB”方法。

不知道这怎么可能......有人知道我在这里做错了什么吗?

我发现了一个与我在这里问的完全相反的类似帖子

0 投票
5 回答
1677 浏览

python - 子类化 int 以获得十六进制表示

基本上我想访问所有标准的python int 运算符,例如__and____xor__,特别是当最终打印结果时,我希望它以十六进制格式表示。(有点像将我的计算器置于十六进制模式)

理想情况下,输出的两行都应该是十六进制:0xfacade,但是第一行产生十进制:16435934

有任何想法吗?

0 投票
5 回答
4504 浏览

c++ - 有没有办法禁止我的类的子类化?

假设我有一个名为“Base”的类和一个名为“Derived”的类,它是 Base 的子类,可以访问 Base 的受保护方法和成员。

我现在想要做的是使它没有其他类可以继承 Derived。在 Java 中,我可以通过将 Derived 类声明为“final”来实现这一点。是否有一些 C++ 技巧可以给我同样的效果?

(理想情况下,我想让除 Derived 之外的任何类都不能继承 Base。我不能将所有代码放入同一个类或使用friend关键字,因为 Base 和 Derived 都是模板化的,使用Base 的模板参数比 Derived 少....)

0 投票
1 回答
1569 浏览

iphone - 不知道从哪里开始继承 UIControl!

我想创建我自己的控件,该控件将由几个 UILabel 和几个 UITextFields 组成。问题是我不知道从哪里开始!我是否直接继承 UIControl,然后创建我的子视图并将它们添加到 init: 中的主视图中?还是我使用 layoutSubviews?我需要覆盖drawRect:吗?

我习惯于创建将处理添加子视图的“控制器”类,但是如果我将 UIControl 子类化,那么我不确定要覆盖哪些方法来进行设置!

我以前从未这样做过,所以我真的很感激一些指示!

干杯!

0 投票
5 回答
2559 浏览

c++ - 使用仿函数子类化窗口 (Win32)

快速健全性检查:是否可以使用仿函数对窗口进行子类化?我遇到了一种情况,我想在 win proc 中提供一些数据,但 GWLP_USERDATA 已经被使用。仿函数似乎是一个不错的选择,但我无法让它工作。

这是基础知识:

看起来一切都很好,但是当我在消息泵中点击 DispatchMessage() 时,我“访问冲突写入位置 0x00000000”,显然不是一个好兆头。去掉上面代码的调用,生活又快乐了。:(那么这甚至可能吗,还是我完全走错了路?

0 投票
1 回答
249 浏览

cocoa - 使 NSScroller 更大

我正在制作一个针对外部触敏屏幕优化的 Cocoa 应用程序,所以我想在 NSScrollView 中制作一个大的 scollbar。我试图调整滚动框的大小,但绘图和鼠标事件都只发生在滚动区域,它不会变宽(它是垂直滚动条)。这是我正在使用的代码(来自子类 NSScrollView):

我尝试将 NSScroller 子类化,但我不知道如何扩展它。

0 投票
1 回答
554 浏览

compact-framework - 处理由 Compact Framework 应用程序生成的所有 Windows 消息

希望有人可以阐明一个问题 - 我正在尝试收听\拦截应用程序生成的所有 Windows 消息并处理某些类型,例如通知或手势消息。

我一直在阅读有关如何使用 Microsoft.WindowsCE.Forms.MessageWindow 执行此操作的文章,并创建一个继承它的类,覆盖 WndProc 方法,但我一直无法让它开始侦听\在应用程序时自动监视消息队列开始。

我知道可以使用 OpenNetCF 框架和 Application2 命名空间来做到这一点,但是我现在不希望使用 3rd 方软件——这不会冒犯 OpenNetCF 的人。

希望这是有道理的。另外,我正在使用 C#2.0 和 Windows Mobile 6.5。

谢谢你的帮助,

莫里斯

0 投票
2 回答
4125 浏览

c# - 在 C# .NET 中子类化外部窗口

我正在尝试在 C# 中对外部窗口进行子类化。我以前在 VB6 中使用过类似的东西,没有任何问题,但是下面的代码不起作用。有人可以帮帮我吗?

0 投票
2 回答
3482 浏览

iphone - 制作更薄的UITabBar

我希望能够通过删除每个项目的标题并回收它们占用的垂直空间来降低 UITabBar 的高度,就像 Tweetie 2 一样。这似乎无法在 .xib 中或以编程方式设置。我是否必须继承 UITabBar 并自己滚动?

0 投票
4 回答
1050 浏览

java - 子类化数组

如果您对故事不感兴趣,请跳过前 2 段。

我正在和一位朋友谈论数组,以及如果您尝试访问像 Objective C(这是我的主要语言)这样的“现代”语言中越界的对象,为什么它们(仍然)会崩溃。所以我们进行了一场辩论,我说我可以给他写一个数组(我将它命名为 GeniusArray),如果你尝试访问越界但不会崩溃,它会返回 null 并打印出错误。

睡过之后我意识到,如果您正在访问超出范围的元素,您的代码中会出现一些严重的错误,并且应用程序崩溃可能还不错,因此您不得不修复它。:-D

但仍然:我想证明我的观点并将一个 Array 子类化并重写 get() 方法,方法是基本上添加每个程序员相对经常编写的这个 if 语句:

我想用Java而不是Objective C来做,因为这是我朋友“知道”的(顺便说一句,我们都是学生)。

长话短说:我尝试将 Array 子类化,但它似乎不起作用。我明白了:

访问限制:由于所需库的限制,无法访问类型 Attribute.Array:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/classes.jar GeniusArray.java