gpt4 book ai didi

java - 对在构造函数中使用 Parent to Child 感到困惑

转载 作者:行者123 更新时间:2023-11-29 09:02:17 25 4
gpt4 key购买 nike

我希望我能就这个问题得到一些澄清。所以类层次结构如下所示:抽象类、具体类 1 和具体类 2。 ConcreteClass1 扩展了 AbstractClass,ConcreteClass2 扩展了 ConcreteClass1:

ConcreteClass1 中的构造函数如下所示:

private final AbstractClass parent;

public ConcreteClass1( int id, AbstractClass aParent )
{
super( id );

parent = aParent;
}

我想知道这在什么情况下可能有用。除非为 aParent 参数传递 null,否则我看不到如何实例化 ConcreteClass1。 ConcreteClass2 中使用了类似的构造函数(即它也有一个 AbstractClass 类型的参数)。

这能成为合理的设计吗?

最佳答案

它在任何层次结构或继承类型布局中特别有用。

例如,鼠标单击 GUI 元素。假设你的类有一个方法

handleClick(int x, int y);

第一次点击可以由底层组件处理,让父级组件允许结构将点击传递给父级。这类似于向上链接方法/事件。

或者,这也可以由一些外部 Controller 来完成,这些 Controller 管理调用 click 方法的元素,但这可能比仅使用父模型更复杂,或者不太干净(尽管并非总是如此)。

在这种类型的模型中,只有当它是顶级元素时,“父级”才会为空,其余的只会让父级更接近顶部。

关于java - 对在构造函数中使用 Parent to Child 感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16651342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com