【问题标题】:How do I create effective class hierarchy [closed]如何创建有效的类层次结构 [关闭]
【发布时间】:2017-07-06 16:54:01
【问题描述】:

我想创建一个基本的Item 类层次结构。 每个Item 都有一个字符串名称和一个int itemID。 这些变量将在 Item 的每个子类中设置。 Item 类声明了 Item 的两个变量和每个子类 (公共类 Hammer 扩展 Item)将设置名称和 itemID。 例如,name = "hammer" 和 itemID = 01。 我将如何高效且有效地做到这一点?

【问题讨论】:

  • “高效且有效”是什么意思?请花点时间阅读How to Ask。这样你会得到更好的结果。也许开始阅读 java 教程 -docs.oracle.com/javase/tutorial/java/IandI/subclasses.html
  • 您可以将变量放在超类中,将所有项目灵魂共享的所有 fidèles 和方法放在项目类中
  • 这不是面向对象编程的工作方式。子类应该有额外的字段和/或行为。如果它们只是有不同的数据(如您的示例中),它们应该是Item 类的instances,而不是子类。
  • @VincentvanderWeele 将来我计划对每个项目都有独立的行为。我问的问题已经回答了,我只是对如何从子类中设置超类的变量感到困惑。

标签: java class inheritance


【解决方案1】:

基类将声明两个最终私有字段(名称和 itemid)。 这些值将通过基类构造函数设置。

每个派生类都将调用具有适当名称和 itemid 值的基类构造函数。

例如:

public abstract class Blam
{
    private final int itemId;
    private final String name;

    protected(
        final int itemId,
        final String name)
    {
        this.itemId = itemId;
        this.name = name;
    }
}


public class Derived
extends
    Blam
{
    public Derived()
    {
        super(123, "nameValue");
    }
}

【讨论】:

  • 对您的代码稍作修改就可以将我带到我需要的地方。我打算买一两本关于 Java 的书,因为面向对象是主要的“卖点”。现在,我感谢您的快速回答。
猜你喜欢
  • 1970-01-01
  • 2023-04-08
  • 1970-01-01
  • 1970-01-01
  • 2017-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-21
相关资源
最近更新 更多