0

所以我一直在寻找希望找到某种想法或解决方法。

我有一个名为movie 的基类,其实例变量为id、name、loaned 和borrower。这个电影类然后由两个类 Bluray 和 dvd 派生。基本上长话短说,它们都构建在我正在构建的库类中。在电影类型中,我想创建一个名为流派的枚举变量,它保存可以应用于电影的流派。但是我不确定如何将这个枚举变量继承到 Bluray 和 dvd 类。

有人告诉我这是可以做到的,但如果有人能对我如何解决这个问题有所了解,那就太好了!

4

3 回答 3

1

在电影类型中,我想创建一个名为流派的枚举变量,它保存可以应用于电影的流派。但是我不确定如何将这个枚举变量继承到 Bluray 和 dvd 类。

只需使其成为不是的电影类型的成员private。(或者只是同一个包中的枚举,在电影类型之外。)然后 Bluray 和 dvd 类将可以访问它。

例子:

Movie.java

public class Movie {

    public enum Genre {
        Horror,
        SciFi,
        RomCom
    };

    protected Genre genre;

    public Movie(Genre g) {
        this.genre = g;
    }
}

BluRay.java

public class BluRay extends Movie {

    public BluRay(Genre g) {
        super(g);
    }
}

请注意,Genre根本不必在Movie其中,如果不是,您可能会更好(只是在同一个包中或类似的包中)。但如果你 Genre进去Movie,你可以在那里。


旁注:您没有要求对您的设计提供反馈,但 FWIW 我可能不会制作Genre枚举,因为您必须重新编译才能添加流派,这似乎是一种常见的操作。

于 2013-10-29T09:00:33.807 回答
0

您可以将枚举与您的类分开声明(在一个新文件中),然后在我声明枚举类型的变量 movie_type 的电影类中使用。

于 2013-10-29T09:02:17.330 回答
0

当您想使用父类的成员时,您必须提供对它的访问权限。

Java 将访问修饰符指定为 public、protected、(默认)、private。

如果您将访问修饰符设置为受保护,您将能够读取和写入该成员。

顺便提一句

以枚举形式存储性别的想法并不是最好的设计,因为性别会发生变化,您必须在应用程序开始时添加它们中的每一个。

枚举的好解决方案是设备类型。例如 DVD 或 CD,因为这是您可以轻松管理的东西。

于 2013-10-29T09:02:19.733 回答