问题标签 [superclass]

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 投票
6 回答
1039 浏览

java - 可克隆行为

Java 文档说 -

Object 类本身并没有实现接口 Cloneable,因此在类为 Object 的对象上调用 clone 方法将导致在运行时抛出异常。

这就是为什么 Object 类中的 clone 方法受到保护的原因?是这样吗 ?

这意味着任何不实现可克隆的类在调用其克隆方法时都会抛出 CloneNotSupported 异常。

我运行了一个测试程序

从 Class Test 的克隆方法 super.clone 被调用?

为什么它不抛出异常?

0 投票
2 回答
2140 浏览

java - 在调用超类的构造函数之前解析子类中的参数

我想在调用超级构造函数之前放置这两个 if 语句。我知道我不能那样做,那么Exception在调用之前进行这种参数解析(抛出)的无痛方法是什么super()

0 投票
1 回答
2050 浏览

objective-c - 类 超类 子类

我正在尝试使两个子类成为一个类:

变成:

我这样做不对,是吗?见上面我有4个错误……这是我第一次上课……帮助我理解,我想我几乎做对了。

0 投票
1 回答
1126 浏览

c++ - C++ 超类数组还访问子类方法?

我有一个账户类,我有 3 种类型的账户储蓄、信贷和住房贷款。

我创建了一个二叉搜索树以将所有帐户保存为类型帐户

我现在如何根据对象的类型访问子类的方法?

已经解决了语法和编码的所有错误,但这个。

已经绞尽脑汁2天了。有谁知道这是怎么做到的?

0 投票
10 回答
85637 浏览

python - 为什么不自动调用超类 __init__ 方法?

为什么 Python 设计者决定子类的__init__()方法不会__init__()像在其他一些语言中那样自动调用其超类的方法?Pythonic和推荐的成语真的像下面这样吗?

0 投票
1 回答
87 浏览

java - 向超类添加新方法并产生问题 - 可能性?

Effective Java 2nd edition 的第 16 条,赞成组合胜过继承说以下

“如果超类在后续版本中获得了一个新方法,而你不幸给子类一个具有相同签名和不同返回类型的方法,那么你的子类将不再编译。

如果您为子类提供了与新超类方法具有相同签名和返回类型的方法,那么您现在正在覆盖它”

这些案例在现实世界中出现的可能性有多大?这里的任何人都可以给我一个真实商业应用程序的例子(如果需要,删除专有信息)?

0 投票
2 回答
3215 浏览

python - 调用变量超类方法

我试图通过使用变量方法名称来调用超类的方法。通常,我会看到以下两行代码是等效的:

事实上,我相信,这也是我使用第一行时实际发生的情况。然而,在下面的例子中,第二行产生了一个奇怪的问题。

super用来构造一个超对象并调用超类的方法。直接执行它按预期工作,但是使用__getattribute__首先获取方法会导致无限循环,它会一次又一次地调用子类的方法。

请参阅以下代码:

如果您运行该代码,一切都会按预期进行,并且您应该得到类似于以下内容的输出:

所以这两种方法,一种是直接访问,另一种是 via __getattribute__,看起来是一样的。但是,如果您用注释掉的行替换方法调用,您最终会遇到递归运行时错误。

为什么会发生这种情况,更重要的是,当我使用工作行时,如何以与 python 内部相同的方式实际访问该方法?

编辑

当我以为我已经尝试了所有方法时,我发现这是可行的:

它实际上等于super( B, self ).example

0 投票
1 回答
642 浏览

objective-c - 警告:不兼容的 Objective-C 类型将超类分配给子类

假设一个有效的超类和一个有效的子类,即类工作。

子类 self = [super init] 的构造函数中的以下行;

抛出以下警告 // 警告:不兼容的 Objective-C 类型分配 'struct Animal *',预期 'struct Cat *'

有关如何解决此问题并删除警告的任何想法?

干杯

0 投票
5 回答
2776 浏览

objective-c - 为什么初始化子类需要调用超类的相同init函数?

我听说当你有一个子类时,你应该在子类的 init 中使用相同的 init 函数来初始化超类。我的意思是子类的init应该调用[super init],而子类的initWithFrame应该调用[super initWithFrame]。为什么是这样?为什么从子类的 initWithFrame 调用 super 的 init 会导致无限循环?

如果这是必需的,那么这是否意味着我不能在诸如 initWithPoint 的子类中创建一个新的 init 函数,并且仅仅因为超类没有 initWithPoint 就可以调用 super 的 init 或 initWithFrame?我想这里问题的核心就是为什么调用不同的超类是不合适的,这可能让我感到困惑,可能是因为我的 c++ 背景?

0 投票
5 回答
6606 浏览

scala - Scala 元组的通用“地图”功能?

我想使用返回类型 R 的单个函数映射 Scala 元组(或三元组,...)的元素。结果应该是一个具有 R 类型元素的元组(或三元组,...)。

OK,如果元组的元素来自相同的类型,映射不是问题:

但是是否也可以使这个解决方案通用,即以相同的方式映射包含不同类型元素的元组?

例子:

应该返回

但是我找不到解决方案,以便映射函数确定 Sub1 和 Sub2 的超类型。我尝试使用类型边界,但我的想法失败了:

这里X >: B似乎覆盖了X >: A. Scala 不支持关于多种类型的类型边界吗?如果是,为什么不呢?