Java继承和多态实现例子

继承,多态的简单例子

我们想做一个类用于存放CD,DVD等光碟,要应用多态和继承,去除重复性代码,便于以后维护(添加新的格式光碟,如:MP3,MP4),因此我们首先创建一个工程demo,创建database类用于存放光碟数据,创建光碟类ltem,创建CD类,创建DVD类,CD和DVD共同继承ltem的属性和方法(CD、DVD都是光碟),减少重复的属性编写,也便于database类的Listltem容器维护(只需维护光碟类即可)。

通过这个例子我们更好的熟悉Java中的继承和多态特性。

在这里插入图片描述

创建database类

package demo;

import java.util.ArrayList;

public class database {
	ArrayList<ltem> listltem=new ArrayList<ltem>();//创建ArrayList容器,存储类型为ltem
	
	public void add(ltem item) {//add方法,传入ltem类型,
		listltem.add(item);//添加进入listltem容器中
	}
	
	public void list() {//list方法 负责遍历容器中所有数据
		for(ltem item:listltem) {
			item.print();
		}
	}

	public static void main(String[] args) {
		database data=new database();//创建database对象
		data.add(new CD("起风了",3,false,"买辣椒也用券"));//添加ltem类型对象,添加ltem子类对象CD(匿名对象),CD构造器初始化,多态
		data.add(new CD("流量", 3, false,"半阳"));
		data.add(new DVD("一出好戏", 125, false,"黄渤"));
		data.list();
	}

}

创建ltem类

package demo;

public class ltem {
	private String title;//标题
	private int playtime;//播放时间
	private boolean borrow;//是佛外借 

	public ltem(String title, int playtime, boolean borrow) {//构造函数初始化变量
		this.title = title;
		this.playtime = playtime;
		this.borrow = borrow;
	}

	public void print() {//print方法 输出数据
		System.out.print("标题:"+title+" 时间:"+playtime);
		
	}
	
}

创建CD类

package demo;

public class CD extends ltem{//子类CD继承父类ltem
	private String artist;//艺术家

	public CD(String title, int playtime, boolean borrow,String artist) {//构造函数初始化
		super(title, playtime, borrow);//super关键字必须放在第一行,调用父类的构造函数,将标题,播放时间,是否外借传入
		this.artist=artist;
	}
	

	public void print() {//print方法重写父类的print 
		System.out.print("CD ");
		super.print();//super调用父类的print方法
		System.out.print(" 艺术家:"+artist);//输出子类独有的属性
		System.out.println();
	}

}

创建DVD类

package demo;

public class DVD extends ltem{//子类DVD继承父类ltem
	private String director;//导演

	public DVD(String title, int playtime, boolean borrow,String director) {//构造函数初始化
		super(title, playtime, borrow);//super关键字必须放在第一行,调用父类的构造函数,将标题,播放时间,是否外借传入
		this.director=director;
	}
	
	public void print() {//print方法重写父类的print 
		System.out.print("DVD ");
		super.print();//super调用父类的print方法
		System.out.print(" 导演:"+director);//输出子类独有的属性
		System.out.println();
	}
	

}

运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沸腾石灰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值