新的扩展类,每个没有单独的文件

时间:2012-04-30 18:22:27

标签: java inheritance

我有一个名为Building的类,有几个类可以扩展它,例如Office和Hospital。扩展类最多只添加十几行代码,因此我不想将它们放在不同的文件中。我不相信内部类会工作,因为它首先需要外部类的实例 - >建筑物。

因此,我想要做的是Building b = new Office(var);,但Office.java中没有Office代码,因为它最多只包含几行代码,但构建将包含大部分代码。但在我的情况下,将Office作为类型是有价值的。有帮助吗?谢谢你的时间!

4 个答案:

答案 0 :(得分:3)

您可以使用静态嵌套类,然后您不需要Building的实例,但我认为在这种情况下最好的方法是使用单独的Java文件。如果它们只包含几行就没关系。

答案 1 :(得分:0)

  

。我不相信内部类会工作,因为它首先需要外部类的实例 - >建筑物。

您可以改为使用static嵌套类。

答案 2 :(得分:0)

您可以使用静态嵌套类:

public class Building {

    public static class Office extemds Building {
    }
}

然后您可以像这样创建一个Office:

Office o = new Building.Office();

但你应该将它们放在单独的文件中以使其更清洁。

答案 3 :(得分:0)

您可以将其定义为静态内部类,但我没有看到这一点,因为它使得该类使用起来更加麻烦。仅仅因为一个类很小并不意味着它不应该在它自己的文件中。

public class Building {
    ...
    public static class Office extends Building {
        ...
    }
}

Building.Office office = new Building.Office();