因此,我正在构建电影租用系统,并得出结论,我想拥有一类电影(已存储特定电影数据),然后拥有另一类将具有扩展特定电影的对象(例如, ,《星球大战:新希望》的副本,每个副本都有自己的唯一ID。
如何设置我的类,以便每个唯一电影的信息都被复制对象继承? (将我的movieCopy类扩展到我的电影类会实现我想要做的事情吗?因为我在想这只会扩展电影类的变量,而不是电影类每个对象的特定属性。
如有任何通信错误,敬请谅解。请随时询问您是否需要我进行澄清。
我正在尝试实现的结构:
电影(类)
MovieCopy(class)
MovieCopy
最佳答案
MovieCopy类(DVD,Bluray等)可能只包含一个成员变量,用于存储关联的Movie实例(带有标题,描述等的实际电影)。这样,您就可以访问所有元数据,而无需任何笨拙的继承。
class Movie {
private long id;
private String title;
private LocalDate release;
private String contentDescription;
Movie(long id, String title) {
this.id = id;
this.title = title;
}
...
}
class MovieCopy {
private long copyId;
private Movie movie;
private LocalDate lastHired;
private LocalDate latestReturn;
MovieCopy(long id, Movie movie) {
this.copyId = id;
this.move = movie;
}
...
}
编辑-您将像这样填充电影收藏:
Movie starWars4 = new Movie(1, "Star Wars 4");
MovieCopy starWarsDvd1 = new MovieCopy(1, starWars4);
MovieCopy starWarsDvd2 = new MovieCopy(2, starWars4);
MovieCopy starWarsDvd3 = new MovieCopy(3, starWars4);
因此,您具有同一电影的三个副本。