Java的抽象类和接口示例

最近在学习java,在抽象类和接口上有这样一个示例。
代码如下:
下面展示一些 内联代码片

package TaskFive;
//打印机抽象类
//抽象类中的抽象方法,方法的具体实现由子类确定
abstract class Printer {
	abstract void pri(String s);//打印
	abstract void copier(String s);//复印
}
//声明接口
//实现  提示收费语句 的功能
interface charge {
	 //必须初始化,静态不可修改
	 public static final int page = 1; 
	 default void Tip() {
		 System.out.println("一次打印" + page + "页");
	 }
	 void get_money();	
	}
//黑白打印机
class Black_white extends Printer implements charge {
	void pri(String s) {
		System.out.println("可以打印黑白的" + s);
	}
	void copier(String s) {
		System.out.println("可以复印黑白的" + s);
	}
	public void get_money(){
		System.out.println("一次0.1元.");
	}
}
//彩色打印机
class Color extends Printer{
	void pri(String s) {
		System.out.println("可以打印彩色的" + s);
	}
	void copier(String s) {
		System.out.println("可以复印彩色的" + s);
	}
}
//使用人
class User {
	Printer PRI;
	void set(Printer P) {
		PRI = P;
	}
	void use(String s) {
		PRI.pri(s);
		PRI.copier(s);
	}
}

public class Test1 {

	public static void main(String[] args) {
		/*Printer p = new Printer();	会报错,原因:抽象类不能实例化*/
		/*charge Cha = new charge();	会报错,原因:接口不能实例化*/
//彩色打印机
		Printer p = new Color();//定义上转型对象
		User Andy = new User();
		
		Andy.set(p);
		Andy.use("Hello,world!");
//黑白打印机(有收费功能提示)		
		charge Cha;
		p = new Black_white();
		Cha = (charge) p;
		Cha.Tip();
		Cha.get_money();
		Andy.set(p);
		Andy.use("Good!");
	}

}

如有不足,请大家指点,谢谢。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值