问题标签 [class-hierarchy]

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 投票
1 回答
952 浏览

objective-c - 遍历从基到所有后代的类层次结构

在我正在编写的 iOS 应用程序中,我想遍历类层次结构以列出所有子类。我的意图是将每个子类类型用作NSStringForClass()字典中的键——通过。

我的动机是能够自动发现基类的所有变体,以便我可以调用与该类关联的方法。出于分工的原因,我不喜欢在这里使用方法覆盖。

是否可以进行这样的遍历?它将如何运作?

0 投票
6 回答
2977 浏览

java - 在哪里可以找到 Java API 类图?

有没有可以找到 JAVA API 类图的网站。它有助于以可视方式查看类层次结构(示例异常类层次结构)。谢谢。

0 投票
2 回答
251 浏览

c++ - 让子类在构造函数中接受对父级的引用

我有一个类层次结构,可以简单地这样说:

当我尝试创建两个这样的实例时:

我从 Clang 收到以下错误:

我希望这个类是不可复制的,那么有没有办法Parent&调用重载而不是复制构造函数?我知道它为什么会这样,但我正在寻找一种解决方法。我想Child(Parent& p)被调用而不必投射它。

我在GCC和 Visual Studio 中也遇到了这个错误。虽然我不明白英特尔的编译器,但其他三个的一致行为似乎表明它是错误的,而其他的则是正确的。

0 投票
2 回答
2331 浏览

java - 无法从同一包中的不同类获取构造函数以进行识别。

所以我要发布的这两个文件都在我的数据库包中。DBBinding 类只需要创建一个对象,其中一个字符串作为键,一个字符串作为值。然后 DBrecord 将保留一个 DBBindings 集合,它们都具有相同的键字符串但不同的值字符串。由于某种原因,我无法思考/找到在 DBrecord 中创建 add 方法的正确方法,以便它调用 DBBinding 类/对象构造函数。

这是应该添加绑定的方法:

这是 DBBinding 代码,后面是 DBrecord 代码。

0 投票
5 回答
3784 浏览

c++ - 当两个超类具有同名但签名不同的成员函数时不明确

d.f调用很好但c.f给出的原因是什么

0 投票
2 回答
101 浏览

java - Eclipse 是否有办法向我展示 Java 类的完整实现的“合并”?

我目前正在使用具有相当长的类层次结构的 Java 框架。当爬过一个类的代码路径时,我必须在这个层次结构中的不同类之间来回跳转。

我正在寻找一种工具或 Eclipse 视图,它提供一个类的完整实现与其所有最具体的方法的“合成合并”。有这样的事情吗?

例如,我必须使用此类实现层次结构:InternalResourceViewResolver extends UrlBasedViewResolver extends AbstractCachingViewResolver。

现在,当在 InternalResourceViewResolver 中读取代码时,会调用其超类型的方法。来回浏览(使用 "Open Declaration" (F3) 和后退按钮 (Alt+Left) )可能会让人感到困惑:我开始失去焦点并且碰巧错误地读取了实际上被我调查的子类覆盖的超类的方法实现。

0 投票
1 回答
639 浏览

c# - 从基类对象列表中调用子类的方法?

在我提出问题之前,这是我的代码结构的示例:

Item然后我在我的World类中构造一个对象列表。列表中的每个对象都属于它的类型。

然后我怎么能像这样调用每个特定项目类的使用方法:

如果您对我的问题有什么不明白的地方,请随时问我!

0 投票
5 回答
5488 浏览

java - 重写 Thread 子类中的 run() 方法

我只是想知道如果我对一个扩展的类进行子类化Thread并编写以下代码并进行测试,结果会是什么:

结果是:

在 A Thread-0
中在 B Thread-1 中

但我不明白为什么要创建两个线程?

0 投票
1 回答
1062 浏览

java - java中的对象扩展

在java中,如果你有一个需要泛型来扩展特定类的对象,但你想用该类的扩展来实现它,有没有办法让java知道你实际上并没有违反自己的规则?下面的示例代码假设这没有意义。

所以我的问题本质上是,有什么方法可以告诉我的 StaticInterface 我的 WantedObject 实际上扩展了我的 UsefulObject,即使它不是直接的?我真的不希望仅仅因为 OlderObject 包含很多有用的代码而将我的 WantedObject 重写为 UsefulObject 的纯扩展,并且我正在写入我正在使用的序列想要了解当前状态的数据库旧对象。我在写这篇文章时意识到我可以让 WantedInterface 直接扩展 OlderObject 的接口,但我想知道是否有办法避免这种情况。

编辑:好吧,在一个非常奇怪的转折中,我能够通过将 WantedObject 的扩展更改为 UsefulObject,然后将其改回原样来解决问题。也许问题只是一些临时的 IDE 问题?我正在使用eclipse,它是否偶然遇到了这个问题?

0 投票
1 回答
86 浏览

c++ - 哪个玩家类是由更好的层次结构创建的?

哪个类更适合未来的实现?突击掠食者(多重继承)还是女王(多层次等级)?

正如所见,攻击性捕食者分别来自生活捕食者。女王来自外星人,外星人来自生活

问题:就编程和类层次结构而言,哪一个更合乎逻辑。

这些球员的优缺点是什么?