本周我们介绍了以继承方式实现的媒体资料库,在课程代码实现的基础上,请实现一个表达MP3的媒体类型,能和CD、DVD一样存放进这个Database。请提交这个MP3类的代码。如果你认为为了能存放MP3,需要修改Item和Database,也请一并提交Item和Database的代码。
代码实现:
import java.util.ArrayList;
public class Database {
private ArrayList<Item> listItem = new ArrayList<Item>();
public void add(Item item) {
listItem.add(item);
}
public void list() {
for(Item item : listItem) {
item.print();
}
}
public static void main(String[] args) {
Database db = new Database();
db.add(new CD("土味", "杀马特", 5, 60, "曹县nb666"));
db.add(new CD("广场舞disco", "大妈最爱的dj", 500, 6000, "无法入睡"));
db.add(new DVD("哲学片", "Van", 60*120, "文艺复习"));
db.add(new Mp3("占哥哥欠", "me",100, 600, "口昌占哥哥欠"));
db.list();
}
}
public class Item {
private String title;
private int playingTime;
private boolean gotIt = false;// = false 也可不写
private String comment;
public Item(String title, int playingTime, boolean gotIt, String comment) {
super();
this.title = title;
this.playingTime = playingTime;
this.gotIt = false;
this.comment = comment;
}
public void print() {
// TODO Auto-generated method stub
System.out.print(title+" ");
}
}
public class CD extends Item{
private String artist;
private int numOfTracks;
public CD(String title, String artist, int numOfTracks, int playingTime, String comment) {
super(title,playingTime,false,comment);
this.artist = artist;
this.numOfTracks = numOfTracks;
}
public void print() {
System.out.print("CD: ");
super.print();
System.out.println(artist);
}
}
public class DVD extends Item{
private String director;
public DVD(String title, String director, int playingTime, String comment) {
super(title,playingTime,false,comment);
this.director = director;
}
public void print() {
System.out.print("DVD: ");
super.print();
System.out.println(director);
}
}
public class Mp3 extends Item{
private String artist;
private int numOfTracks;
public Mp3(String title, String artist, int numOfTracks, int playingTime, String comment) {
super(title, playingTime, false, comment);
this.artist = artist;
this.numOfTracks = numOfTracks;
}
public void print() {
System.out.print("Mp3: ");
super.print();
System.out.println(artist);
}
}
最终输出: