java 抽象的打印机类Printer,抽象父类和具体子类。

这里写一个子类调用父类的例子加深子类和父类的关系
这是类的关系
在这里插入图片描述
这是demo,用来运行方法和使程序交互性更强

package printer;
/*
 测试类
 */
import java.util.Scanner;

public class Printerdemo {
    

    public static void main(String[] args) {
	while (true) {
	    System.out.println("-----------欢迎进入您的虚拟打印机-----------");
	    System.out.println("请选择你要打印的照片 ");
	    System.out.println("1.一寸证件照");
	    System.out.println("2.两寸证件照");
	    System.out.println("3.关闭打印机");

	    Scanner sc = new Scanner(System.in);
	    String line = sc.nextLine();
	    Printer c = new Colorprinter();
	    // 利用switch语句调用展示方法和进行功能操作的switch语句
	    switch (line) {
	    case "1": {
		// 展示
		System.out.println("请选择你要打印的颜色");
		System.out.println("1.彩色");
		System.out.println("2.黑白色");

		// 功能的操作
		String function = sc.nextLine();
		switch (function) {
		case "1": {
		    c.setColor("彩色");
		    c.print();
		    break;
		}
		case "2": {

		    c.setColor("黑白色");
		    c.print();
		    break;
		}
		default:
		    System.out.println("对不起您输入的信息有误,请重新输入");
		    break;
		}
		break;
	    }
	    case "2": {
		// 展示
		System.out.println("请选择你要打印的颜色");
		System.out.println("1.彩色");
		System.out.println("2.黑白色");

		// 功能的操作
		String function = sc.nextLine();
		switch (function) {
		case "1": {
		    c.setColor("彩色");
		    c.print();
		    break;
		}
		case "2": {

		    c.setColor("黑白色");
		    c.print();
		    break;
		}
		default:
		    System.out.println("对不起您输入的信息有误,请重新输入");
		    break;
		}
		break;
	    }
	    case "3": {
		// 直接结束系统运行
		System.out.println("已关闭打印机");
		System.exit(0);
	    }
	    default:
		System.out.println("您输入的信息有误,请重新输入");
		break;
	    }
	}

    }
	
    

}

这是父类,定义了color的属性和一个抽象方法抽象类,用来继承给子类,abstract就是抽象的关键词,用来定义没有功能的方法,这里要说一下,抽象类里边可以有具体的方法,也可以没有抽象的方法,但是,具体的类里边不能有抽象的方法。

package printer;
/*
 定义printer父类
 */
public abstract class Printer {
    public String color;

    public String getColor() {
	return color;
    }

    public void setColor(String color) {
	this.color = color;
    }

    public abstract void print();

}

这是子类,继承了父类里边所有的属性。注意这里我的color是public的,如果是private的就不能继承到子类里了。

package printer;
/*
 定义子类重写print方法
 */
public class Colorprinter extends Printer {

    @Override
    public void print() {

	// TODO Auto-generated method stub
	if (getColor() == "彩色") {
	    System.out.println("你成功打印出了一张彩色照片");
	} else if (getColor() == "黑白色") {
	    System.out.println("你成功打印出了一张黑白照片");
	}
    }

}

接下来是效果的演示
在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值