所以我一直在寻找希望找到某种想法或解决方法。
我有一个名为movie 的基类,其实例变量为id、name、loaned 和borrower。这个电影类然后由两个类 Bluray 和 dvd 派生。基本上长话短说,它们都构建在我正在构建的库类中。在电影类型中,我想创建一个名为流派的枚举变量,它保存可以应用于电影的流派。但是我不确定如何将这个枚举变量继承到 Bluray 和 dvd 类。
有人告诉我这是可以做到的,但如果有人能对我如何解决这个问题有所了解,那就太好了!
所以我一直在寻找希望找到某种想法或解决方法。
我有一个名为movie 的基类,其实例变量为id、name、loaned 和borrower。这个电影类然后由两个类 Bluray 和 dvd 派生。基本上长话短说,它们都构建在我正在构建的库类中。在电影类型中,我想创建一个名为流派的枚举变量,它保存可以应用于电影的流派。但是我不确定如何将这个枚举变量继承到 Bluray 和 dvd 类。
有人告诉我这是可以做到的,但如果有人能对我如何解决这个问题有所了解,那就太好了!
在电影类型中,我想创建一个名为流派的枚举变量,它保存可以应用于电影的流派。但是我不确定如何将这个枚举变量继承到 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
枚举,因为您必须重新编译才能添加流派,这似乎是一种常见的操作。
您可以将枚举与您的类分开声明(在一个新文件中),然后在我声明枚举类型的变量 movie_type 的电影类中使用。
当您想使用父类的成员时,您必须提供对它的访问权限。
Java 将访问修饰符指定为 public、protected、(默认)、private。
如果您将访问修饰符设置为受保护,您将能够读取和写入该成员。
顺便提一句
以枚举形式存储性别的想法并不是最好的设计,因为性别会发生变化,您必须在应用程序开始时添加它们中的每一个。
枚举的好解决方案是设备类型。例如 DVD 或 CD,因为这是您可以轻松管理的东西。