【发布时间】:2014-11-05 18:31:02
【问题描述】:
我目前正在尝试使用super(); 调用超类Album 的构造函数,但它不起作用。这个问题似乎源于我试图用 Artist 类型的对象而不是 String 来调用它,但即使我使用 String,它仍然不起作用。谁能指出我哪里出错了——以及是否有更好的方法来拨打电话:
public class StudioAlbum extends Album {
private Artist artist;
public StudioAlbum(String name, Artist artist) {
super(artist);
this.name = name;
this.artist = artist;
albumType = "Studio";
}
public void setArtist(Artist artist) {
this.artist = artist;
}
public String getArtist() {
return artist;
}
}
如果这很有用,Album 类看起来像这样(没有方法):
public class Album {
protected String name;
private ArrayList<Track> trackList;
private int length;
private int fileSize;
private double averageRating;
protected String albumType;
public Album(String name){
this.name = name;
trackList = new ArrayList<Track>();
}
}
【问题讨论】:
-
您可以发布您在使用
String时遇到的错误吗? -
Album构造函数希望您为其提供专辑名称。所以你需要给它命名专辑的名字。这适用于您拨打super时,就像您拨打new Album时一样。你需要说super(name)。 -
你是否传递了错误的参数?
标签: java superclass