Java基础学习小记--多态
题外话:总结了多年的学习心得,不得不说,睡眠是一个学习者的必需品!所谓“早起毁一天”不是没有道理哪,特别对Coders来说,有几天不是加班到夜里。好吧,我承认对于初学Java的我,昨日头脑顿路,Java的继承与多态,看得我是有点小懵逼。其实大致是懂了,不过到了具体应用中,特别是比较复杂的继承和调用关系的时候些许迷路。好了,话不多说,明日再把继承和多态来个总结,今日先对多态来个小记。
-------------------------------------------------------------------------------------------------------------------
现在我们要做这么一个媒体库,用来存放CD和DVD。可以往媒体库里添加CD和DVD,还可以列出来媒体库里所有的CD和DVD。
我们用到了继承的概念:CD是一个对象,DVD也是。两者又有很多相似的地方,比方说都有名字,播放时间,评论,等等,为了以后便于管理和调试,我们做了一个父类叫Item,它下面有两个子类:CD,DVD。
然后我们还需要做一个类(对象)来管理它们,这个对象有一个ArrayList的成员变量当作媒体库,有一个add函数用来添加CD或DVD,还得有个list函数用来列出媒体库里的所有东西。我们给这个类起名Database。
这样我们就要做以下四个java源文件:
源码:
1 package dome; 2 3 import java.util.ArrayList; 4 5 public class Database { 6 7 private ArrayList<Item> listItem = new ArrayList<Item>(); 8 9 public void add(Item item) { 10 listItem.add(item); 11 } 12 13 public void list() { 14 for(Item item:listItem) { 15 item.print(); 16 } 17 } 18 19 public static void main(String[] args) { 20 Database db = new Database(); 21 db.add(new CD("黑梦",600,true,"Classic Album","窦唯",10)); 22 db.add(new DVD("功夫",900,false,"Let's do this!","周星驰")); 23 db.add(new CD("Wall",700,false,"Psychedelic Rock","PinkFloyd",15)); 24 db.list(); 25 } 26 27 }
1 package dome; 2 3 public class Item { 4 5 private String title; 6 private int playTime; 7 private boolean gotIt = false; 8 private String comment; 9 10 public Item(String title, int playTime, boolean gotIt, String comment) { 11 super(); 12 this.title = title; 13 this.playTime = playTime; 14 this.gotIt = gotIt; 15 this.comment = comment; 16 } 17 18 public void print() { 19 System.out.print(title+":"+playTime+":"+gotIt+":"+comment); 20 } 21 22 }