所以我一直在搜索,希望能找到某种想法或方法。
我有一个名为movie的基类,其实例变量为id,name,loaned和borrower。然后这个电影类由两个类bluray和dvd派生。基本上长话短说,它们都建在我正在建造的图书馆课堂上。在电影类型中,我想创建一个名为genre的枚举变量,它包含可以应用于电影的类型。但是我不确定如何继续将这个枚举变量继承到bluray和dvd类。
我被告知可以这样做,但如果有人能说明我如何做到这一点那就太棒了!
答案 0 :(得分:1)
在电影类型中,我想创建一个名为genre的枚举变量,它保存可应用于电影的类型。但是我不确定如何继续将这个枚举变量继承到bluray和dvd类。
只需将其设为非private
的电影类型的成员即可。 (或者只是在电影类型之外的同一个包中的枚举。)然后蓝光和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
之内,如果不是(仅在相同的包或类似内容中),您可能会更好。但是,如果您<{1}}中的想要 Genre
,那么您可以将它放在那里。
旁注:您没有询问有关您的设计的反馈,但FWIW我可能不会使Movie
成为枚举,因为那时您必须重新编译才能添加类型,这似乎是一个常见的操作
答案 1 :(得分:0)
您可以将枚举声明与您的类(在新文件中)分开,然后在我声明枚举类型的变量movie_type的影片类中使用。
答案 2 :(得分:0)
如果要使用父类的成员,则必须提供对其的访问权限。
Java将访问modyfier定义为public,protected,(default),private。
如果将访问modyfier设置为protected,您将能够读取和写入该成员。
顺便说一句
以enum的形式存储性别的想法并不是性别变化的最佳设计,您必须在应用程序开始时添加每个性别。
枚举的良好解决方案是设备类型。比如DVD或CD,因为这是你可以轻松管理的东西。