gpt4 book ai didi

java - 为什么我应该使用通用类而不是特定类

转载 作者:行者123 更新时间:2023-11-30 03:54:31 26 4
gpt4 key购买 nike

我最近读到,在编程​​时应该使用通用类而不是特定类。我不明白为什么建议这样做。

示例:假设我们有一个继承自 JPanel 的类 MyPanel。 MyPanel 有一个名为 getLastChild 的非继承方法。

而不是:

MyPanel panel = new MyPanel():
Component last = panel.getLastChild();

建议这样做:

JPanel panel = new MyPanel();
Component last = ((MyPanel)panel).getLastChild();

我不明白为什么我应该选择第二个。

最佳答案

你是对的,这个例子确实没有意义。

一般的经验法则是您应该使用仍然具有适当功能的最通用的类​​。这样,您就可以自由地更改正在使用的具体类,并让程序的其余部分继续工作。例如,考虑 JDK 的 Collections.sort(List)。相同的方法调用可以与 ArrayListLinkedList 或任何其他 List 一起使用 - 它不关心如何调用的细节list 已实现,只是它是一个列表。

但是,您的示例有所不同。如果您需要调用 MyPanel.getLastChild(),您肯定会关心是否有一个 MyPanel - 您不能只使用任何其他 JPanel 。由于您已经具有此依赖项,因此将变量声明为 JPanel 并向下转换它只是为了调用 getLastChild() 是没有意义的。

关于java - 为什么我应该使用通用类而不是特定类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23585892/

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