标签: class-hierarchy

OOP派生类和继承类之间的区别?

从OOP的角度来看,派生类和继承类之间有什么区别吗?或者只是术语?

oop inheritance terminology class-hierarchy

10
推荐指数
2
解决办法
1万
查看次数

IntelliJ IDEA:有没有办法列出一个类及其父类实现的所有接口?

我从事一个相对复杂的Java项目,其中类之前通常有四个或五个祖先Object.给定这样的类,例如D在这样的层次结构中:Object > A > B > C > D,我想知道它有效实现的所有接口.也就是说,我也有兴趣看到这些D实现,Serializable即使它只在类的声明中声明,B甚至D实际上没有实现接口指定的任何方法(当然,如果谈论Serializable).

我尝试过的这些信息的一些潜在来源包括:

  • 在Structure窗口中使用"Group by Defining Type" - 但不会显示空接口(=没有方法的接口),以及
  • "层次结构"窗口 - 但在查看类的层次结构时不包括接口.

有没有办法在IDEA中获取此信息而无需打开相关类的所有祖先类的文件?

java interface intellij-idea class-hierarchy superclass

10
推荐指数
1
解决办法
2966
查看次数

解密vtable转储

我正在"玩"C++中的虚拟继承,我想知道如何布置类对象.我有这三个班:

class A {
private:
    int a;
public:
    A() {this->a = 47;}
    virtual void setInt(int x) {this->a = x;}
    virtual int getInt() {return this->a;}
    ~A() {this->a = 0;}
};

class B {
private:
    int b;
public:
    B() {b = 48;}
    virtual void setInt(int x) {this->b = x;}
    virtual int getInt() {return this->b;}
    ~B() {b = 0;}
};

class C : public A, public B {
private:
    int c;
public:
    C() {c = 49;}
    virtual void setInt(int x) {this->c = x;} …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance dump class-hierarchy

9
推荐指数
2
解决办法
2365
查看次数

Delphi 7:如何生成类层次结构?

我正在寻求了解Delphi 7中其他人的代码(我怀疑新版本内置了这个代码,但我不想为最新版本提供> $ 1k).

他们的任何(最好是FOSS)工具会帮我生成一个类层次结构图吗?


实际上,GExperts中的类浏览器可以.也许不如公认的答案那么好,但只是众多工具之一

delphi class-hierarchy

9
推荐指数
1
解决办法
5339
查看次数

Java - 设计验证器、类层次结构

我正在努力为某些对象(这些对象的字段)设计一个验证器。这些物体被封装在一个更大的物体——容器中。

示例:汽车作为容器。由车轮、发动机、车身组成。可以说我需要验证车轮是否具有正确的直径,发动机是否具有正确的容量,车身是否具有一定的长度等。

理论上,我认为我应该在建造容器(汽车)之前验证一切。

实现这一目标的最佳方法是什么?我是否使用 validate() 方法创建一个抽象验证器类并在每个封闭的类中实现它?容器怎么样,我是否根本不将其包含在验证过程中?感谢帮助。

java validation inheritance class-hierarchy

9
推荐指数
1
解决办法
1万
查看次数

如何构建基本的类层次结构?

我知道如何编写和使用简单的类,我甚至知道继承如何工作以及如何使用它.但是,关于如何实际设计类层次结构,甚至如何设计简单类的指南数量非常有限?另外,我何时以及为什么要继承(或使用)一个类?

所以我不是在问我怎么样,我在问何时以及为什么.示例代码总是一种很好的学习方式,所以我很感激它们.此外,强调设计的进展,而不是简单地给出一个句子的时间和原因.

我主要使用C++,C#和Python编程,但我可能会理解大多数语言中的简单示例.

如果任何条款似乎混淆了,请随时编辑我的问题.我不是本地人,我不确定所有的话.

c++ python inheritance class class-hierarchy

9
推荐指数
1
解决办法
2万
查看次数

应用程序生成Java类层次结构图

寻找一种工具:

  • 产生视觉上令人愉悦(不是花哨)的正交结构图层次结构
  • 输出高质量的PNG图像(300dpi +)
  • 可视化区分类,抽象类,接口和枚举类型(最好通过颜色)
  • 交互式用户界面
  • 允许从图中修剪包和/或单个类
  • 种子(例如,文件»打开)使用一组:
    • 目录
    • JAR文件
    • 单个源文件
    • 个别编译类
  • 对类依赖性执行全自动分析
  • 搜索类路径以尽可能多地解析未满足的依赖项
  • 使用单个可执行文件
  • 轻巧(~5MB)和快速(平均1.5GHz机器下一秒钟内负载)
  • 很简单(点击10次以下生成图表)
  • 快速(图表100对象在几秒钟内)
  • 易于使用(界面最小,专注于图形生成)
  • 是OSS还是GPL
  • (可选)生成调用图层次结构

无法完成此任务的工具包括:

  • Doxygen + GraphViz(或点)
  • 日食
  • UML建模者
  • Java的结构分析(无法解析源文件)
  • JUDE社区(awkard界面,不适合自动生成)
  • 集成开发环境(太复杂,使用太多内存)

有任何想法吗?

java visualization class-hierarchy call-graph

8
推荐指数
2
解决办法
2万
查看次数

大类层次结构对Java性能的影响有多大?

我有一个扩展另一个类的类,它扩展了另一个类......依此类推.

具有100级层次结构级别的缓慢(百分比)类将起作用,然后具有10级层次结构级别的类?

java performance class-hierarchy

8
推荐指数
3
解决办法
2610
查看次数

"价值阶级空间是平的"是什么意思?

我现在正在阅读"Scala编程"一书.在第11章中,它提到:

请注意,值类空间是平的.

但没有人解释它的含义.那很重要么?为什么?如何使用以及如何检查价值类空间是非常平坦的.看来,它应该告诉ref类空间不平坦,但不是,没有其他的话再说一遍.所以我想知道"空间是平的"是什么意思,以及为什么价值类空间是平的.

scala class-hierarchy

8
推荐指数
1
解决办法
186
查看次数

使用dispatch_once为类层次结构创建单例类

我有一个继承自'MyClass'的2个子类,每个子类应该是一个单例.

当我没有继承任何其他类时,我已经使用此模式获取静态实例:

+ (MyClass *)getInstance
{
    static dispatch_once_t once;
    static MyClass *instance;

    dispatch_once(&once, ^{
        instance = [[MyClass alloc] init];
    });

    return instance;
}
Run Code Online (Sandbox Code Playgroud)

这很有用.现在,如果我添加两个新的子类,FirstClass和SecondClass,它们都继承自MyClass,我如何确保返回相应的ChildClass?

dispatch_once(&once, ^{
    // No longer referencing 'MyClass' and instead the correct instance type
    instance = [[[self class] alloc] init];
});

FirstClass *firstClass = [FirstClass getInstance]; // should be of FirstClass type
SecondClass *secondClass = [SecondClass getInstance]; // should be of SecondClass type
Run Code Online (Sandbox Code Playgroud)

执行上述操作意味着我总是回到我实例化的第一类作为我的第二类类型:

first: <FirstClass: 0x884b720>
second: <FirstClass: 0x884b720>
// Note that the address and type …
Run Code Online (Sandbox Code Playgroud)

singleton multithreading objective-c class-hierarchy

8
推荐指数
1
解决办法
1464
查看次数