首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java对象扩展

Java对象扩展
EN

Stack Overflow用户
提问于 2015-08-11 03:08:41
回答 2查看 119关注 0票数 2

因此,我正在建设一个电影租用系统,并得出结论,我想有一个类别的电影(有特定的电影数据存储)和另一个类别,将有对象,以扩展特定的电影(例如,星球大战:新希望的副本),每一个具有自己独特的ID。

如何设置类,以便复制对象继承每个唯一电影的信息?(通过我的电影类来扩展我的movieCopy类是否能实现我想要做的事情?因为我认为这只会扩展电影类的变量,而不是电影类中每个对象的特定属性。

如有任何沟通错误,敬请见谅。如果你需要我澄清什么,请随便问。

我正在努力实现的结构:

电影(班)

MovieCopy(类)

MovieCopy <-特定电影的属性在电影的每个副本中被继承

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-11 03:21:50

你的MovieCopy课程(DVD,Bluray,.)可以只包含一个成员变量,存储相关的Movie实例(带有标题、描述、.的实际影片)。这样,您就可以访问所有元数据,而无需任何尴尬的继承。

代码语言:javascript
复制
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;
    }
    ...
}

编辑--你可以像这样填充你的电影集:

代码语言:javascript
复制
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);

因此,你有三份相同的电影。

票数 5
EN

Stack Overflow用户

发布于 2015-08-11 03:28:52

在您的情况下,继承并不非常合适。您要做的是创建对象。您甚至不需要一个MovieCopy类。您可以在电影对象中存储每个电影的具体细节。

让我们假设您的电影类有一个name和一个durationInMinutes字段,而且它们都有getter和setter。如果您想要创建一个新的电影副本,可以这样做:

代码语言:javascript
复制
Movie movie = new Movie ();
movie.setName("Star Wars");
movie.setDurationInMinutes (150);

然后你可以用变量名来指星球大战-- movie

您可能在您的Movie类中有其他字段,但是您了解这个概念,对吗?

让我告诉你什么时候使用继承:如果你有一种电影,它有一些普通电影没有的属性,我不能给你举一个例子,因为只有一种电影。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31932564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档