学习Java继承和多态时的一个小demo

来源:互联网 发布:双倍定金怎么算法 编辑:程序博客网 时间:2024/06/03 17:33

很智障的一个小demo啊啊啊啊啊


主要是为了理解继承和多态做的一个小demo


DataBase.java

package demo;import java.util.ArrayList;public class Database {private ArrayList<Iteam> listIteam=new ArrayList<>();//多态性,父类的引用变量可以指向子类的对象,储存父类变量的容器也可以储存子类变量public void add(Iteam iteam){listIteam.add(iteam);}public void list(){        for(Iteam it:listIteam){//动态绑定的体现,在运行时再决定具体调用那一个函数。但在基类当中一定要有print()方法的存在,否则是无法通过编译的。
        it.print();//如果在基类当中没有print()函数,也可以通过instenceof操作符来进行显式的造型解决        }}public static void main(String[] args) {// TODO Auto-generated method stubDatabase db=new Database();CD cd1=new CD("aaa", "bbb",4,100,"....");CD cd2=new CD("aaa", "bbb",4,100,"....");db.add(cd1);db.add(cd2);DVD dvd1=new DVD("aaa", "bbb",4,100,"....");db.add(dvd1);db.list();}}

Iteam.java

package demo;public class Iteam {private String title;private int numOfTracks;private int playingTime;private boolean gotIt=false;private String comment;/**最好为每个类提供一个无参构造方法*/public Iteam(){}public Iteam(String title, int numOfTracks, int playingTime, String comment) {super();this.title = title;this.numOfTracks = numOfTracks;this.playingTime = playingTime;this.comment = comment;}public void print(){System.out.println(title+comment);}public static void main(String[] args) {// TODO Auto-generated method stub}}

CD.java
package demo;public class CD extends Iteam{private String artist;    public CD(){        }    public CD(String title,String artist,int numOfTracks, int playingTime, String comment){super(title, numOfTracks, playingTime, comment);this.artist=artist;}public void print(){System.out.print("CD:"+artist+' ');super.print();}public static void main(String[] args) {// TODO Auto-generated method stub}}


DVD.java

package demo;public class DVD extends Iteam {private String director;    public DVD(){        }public DVD(String title,String director, int numOfTracks, int playingTime, String comment) {super(title, numOfTracks, playingTime, comment);this.director=director;}    public void print(){    System.out.print("DVD:"+director);    super.print();    }}


原创粉丝点击