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

java - 为什么是 super.super.method(); 在 Java 中不允许?

我读了这个问题,并认为如果有人可以写,这很容易解决(并不是说没有它就无法解决):

我不确定它在很多情况下是否有用,但我想知道为什么它没有用,以及其他语言中是否存在类似的东西。

你们有什么感想?

编辑: 澄清一下:是的,我知道,这在 Java 中是不可能的,我并没有真正想念它。这不是我期望的工作,并且很惊讶得到编译器错误。我只是有这个想法,并喜欢讨论它。

0 投票
5 回答
201599 浏览

python - python中的继承和覆盖__init__

我正在阅读“潜入 Python”,并在关于类的章节中给出了这个例子:

然后作者说,如果要覆盖该方法,则必须使用正确的参数 __init__显式调用父级。__init__

  1. 如果FileInfo该类有多个祖先类怎么办?
    • 我必须显式调用所有祖先类的__init__方法吗?
  2. 另外,我是否必须对要覆盖的任何其他方法执行此操作?
0 投票
9 回答
50328 浏览

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

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

考虑以下:

会发生什么?

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

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

我的理解在这里正确吗?

0 投票
3 回答
3358 浏览

c# - .NET / C# - 反射帮助 - 程序集中的类

循环通过程序集的最佳方法是什么,并且对于程序集中的每个类都列出它的“超类”?

0 投票
7 回答
38444 浏览

c# - C#:你如何获得一个类的基类?

在 C# 中,如何获得对给定类的基类的引用?

例如,假设您有某个类 ,MyClass并且您想获得对MyClass' 超类的引用。

我想到了这样的事情:

但是,似乎没有合适的GetBase方法。

0 投票
7 回答
168795 浏览

python - __init__() 应该调用父类的 __init__() 吗?

我在Objective-C中使用过这个结构:

Python 是否也应该调用父类的实现__init__

__new__()对于and ,这也是真/假__del__()吗?

编辑:有一个非常相似的问题:Inheritance and Overriding __init__in Python

0 投票
4 回答
2458 浏览

c# - 我可以使用反射更改 C# 中的私有只读继承字段吗?

就像在java中我有:

我如何知道和设置超类的私有字段?

我知道强烈不推荐这样做,但我正在测试我的应用程序,我需要模拟一个错误的情况,其中 id 正确而名称不正确。但是这个 ID 是私有的。

0 投票
2 回答
865 浏览

php - 使超类对象成为 PHP5 中的子类对象

我想通过将 A 的对象传递给 B 的构造函数来创建 B 的对象,如您所见,我无法重新分配 $this 变量。我不允许修改A类,当A中有很多属性时,我在B的构造函数中做这样的事情会很乏味:

我的问题是,如何使用 A 的对象以最少的编码安全地创建 B 类的对象?

0 投票
1 回答
763 浏览

java - 如何使用超类调用方法

我正在尝试调用一个方法,该方法将超类作为参数,实例中有子类。

现在如果通过调用

如果没有这样的方法,它将失败 异常

即使存在可以接受参数的方法。

关于解决此问题的最佳方法的任何想法?

0 投票
13 回答
262458 浏览

java - 将项目导入 Eclipse 后出现“必须覆盖超类方法”错误

每当我必须将我的项目重新导入 Eclipse 时(如果我重新安装了 Eclipse,或者更改了项目的位置),几乎所有我覆盖的方法都没有正确格式化,从而导致错误:

该方法必须覆盖超类方法

值得一提的是,无论出于何种原因,对于 Android 项目,方法参数值并不总是填充,因此我必须自己手动填充它们。例如:

最初将像这样填充:

奇怪的是,如果我删除我的代码,并让 Eclipse 自动重新创建该方法,它使用我已经拥有的相同参数名称,所以我真的不知道问题出在哪里,除此之外它会自动格式化方法我。

不得不手动重新创建所有我重写的方法,这变得相当痛苦。如果有人能解释为什么会发生这种情况或如何解决它。我会很高兴的。

也许是由于我格式化方法的方式,这些方法在另一个方法的参数中?