因此,我正在构建电影租用系统,并得出结论,我想拥有一类电影(已存储特定电影数据),然后拥有另一类将具有扩展特定电影的对象(例如, ,《星球大战:新希望》的副本,每个副本都有自己的唯一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);


因此,您具有同一电影的三个副本。

08-25 08:33