1

我有一个名为 Building 的类,并且有几个类对其进行了扩展,例如 Office 和 Hospital。扩展类最多只添加十几行代码,因此我不想将它们放在不同的文件中。我不相信内部类会起作用,因为它首先需要外部类的实例-> Building。

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

4

4 回答 4

3

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

于 2012-04-30T18:29:09.480 回答
0

. 我不相信内部类会起作用,因为它首先需要外部类的实例-> Building。

您可以static改为将它们设为嵌套类。

于 2012-04-30T18:29:21.313 回答
0

您可以使用静态嵌套类:

public class Building {

    public static class Office extemds Building {
    }
}

然后,您可以像这样创建办公室:

Office o = new Building.Office();

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

于 2012-04-30T18:29:34.707 回答
0

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

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

Building.Office office = new Building.Office();
于 2012-04-30T18:29:54.493 回答