JAVA学习笔记(三)运用JAVA的继承优化媒体资料库
在上一篇文章中JAVA学习笔记(二)运用JAVA集合容器简单地实现一个媒体资料库我们实现了一个简单的媒体资料库,实现了专辑CD的add()和list()。当我们想要再创建一个DVD类来实现电影的add()和list()时,发现两个类的代码高度重合,具有重复性,此时我们使用继承来解决这类问题。
一、DVD类的简单实现
由于DVD与CD的成员变量基本相似,所以我们使用同样的方法创建DVD类,并且自动生成其构造器。去掉numofTracks歌曲数,并将artist改为director。
private String title;
private String director
private int playingTime;
private boolean gotIt;
private String comment;
public DVD(String title, String director, int playingTime, String comment) {
this.title = title;
this.director = director;
this.playingTime = playingTime;
this.comment = comment;
}
同样的,我们新建一个容器private ArrayList listDVD= new ArrayList();和CD类似。add函数和list函数也是一样,这里不过多赘述,简单看看完整代码和实现结果。
Database:
package dome;
import java.util.ArrayList;
public class Database {
private ArrayList<CD> listCD= new ArrayList<CD>();
private ArrayList<DVD> listDVD= new ArrayList<DVD>();
public void add(CD cd){
listCD.add(cd);
}
public void add(DVD dvd){
listDVD.add(dvd);
}
public void list(){
for( CD cd : listCD){
cd.print();
}
for( DVD dvd : listDVD){
dvd.print();
}
}
public static void main(String[] args) {
Database db = new Database();
db.add(new CD( "十一月的肖邦", "周杰伦", 10, 43, "好听就完事儿")