所以我进行了搜索,希望找到某种想法或解决方法。
我有一个名为 movie 的基类,其实例变量为 id、name、bored 和borrower。然后,这个电影类由两个类bluray 和dvd 派生。基本上长话短说,它们都是在我正在构建的库类中构建的。在电影类型中,我想创建一个名为 Genre 的枚举变量,其中包含可应用于电影的类型。但是我不确定如何将此枚举变量继承到 Bluray 和 DVD 类。
有人告诉我这是可以做到的,但如果有人能阐明我如何做到这一点,那就太好了!
最佳答案
Within the movie type I want to create an enum variable named genre which holds the genre's that can be applied to the movie. However I am not sure how I go about inheriting this enum variable to the bluray and dvd class.
只需将其设为非私有(private)
电影类型的成员即可。 (或者只是同一包中电影类型之外的枚举。)然后 Bluray 和 DVD 类将可以访问它。
示例:
电影.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
中,如果不是(仅在同一个包中或相似的)。但如果您想要电影
中的流派
,您可以在那里找到。
旁注:您没有要求对您的设计提供反馈,但FWIW我可能不会将 Genre
设为枚举,因为那样您就必须重新编译才能添加流派,这似乎就像一个普通的操作。
关于java - java继承枚举值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19653583/