Java面向接口编程——开发打印机

题目:

墨盒:彩色、黑白

纸张类型:A4、B5

墨盒和纸张都不是打印机厂商提供的

打印机厂商要兼容市场上的墨盒、纸张

墨盒接口:

java 复制代码
public interface InkBox {
    String colorInkBox();
//    墨盒颜色

}

纸张接口:

java 复制代码
public interface Paper {
    String size();
//    纸张大小
}

A4纸类:

java 复制代码
package QuestionPpt03;

public class A4paper implements  Paper{
    public String size(){

        return "A4纸张";

    }
}

B5纸类:

java 复制代码
public class A5Paper implements Paper{
    public String size(){

        return "B5纸张";

    }
}

彩色墨盒类:

java 复制代码
public class CorlorfulInk implements  InkBox{
    public String colorInkBox(){


        return "彩色墨盒";
    }
}

黑白墨盒类:

java 复制代码
public class BlackInk implements InkBox{
     public String colorInkBox(){


         return "黑白墨盒";
     }
}

打印机类:

java 复制代码
public class Printer {


    public void print(Paper paper ,InkBox inkBox){
        System.out.println("在纸张大小为:"+paper.size()+"的纸上打印颜色为:"+inkBox.colorInkBox());
    }
}

测试类:

这里用了接口的多态,可以注意一下

java 复制代码
public class Test {
    public static void main(String[] args) {

//        打印机实例
        Printer pinter = new Printer();
//        A5纸:
        Paper a5Paper = new A5Paper();
//        A4纸:
        Paper a4paper = new A4paper();
//        黑白墨盒:
        CorlorfulInk corlorfulInk = new CorlorfulInk();

        InkBox blackInk = new BlackInk();
//        彩色墨盒:

//
        pinter.print(a5Paper,blackInk);
        pinter.print(a4paper,corlorfulInk);
        pinter.print(a4paper,blackInk);

    }
}
相关推荐
千码君201615 分钟前
Go语言:解决 “package xxx is not in std”的思路
开发语言·后端·golang
Ypuyu20 分钟前
【GoLang】【框架学习】【GORM】4. 使用 BeforeUpdate hook 操作时,出现反射报错
开发语言·学习·golang
rexling124 分钟前
【Spring Boot】Spring Boot解决循环依赖
java·前端·spring boot
武子康37 分钟前
Java-163 MongoDB 生产安全加固实战:10 分钟完成认证、最小权限、角色详解
java·数据库·分布式·mongodb·性能优化·系统架构·nosql
ZIM学编程1 小时前
「学长有话说」作为一个大三学长,我想对大一计算机专业学生说这些!
java·c语言·数据结构·c++·python·学习·php
maizeman1261 小时前
用R语言生成指定品种与对照的一元回归直线(含置信区间)
开发语言·回归·r语言·置信区间·品种测试
Dolphin_Home1 小时前
轻量实用的 XML 与 JSON / 对象互转工具类(Jackson 实现)
xml·java·json
Yeniden1 小时前
【设计模式】# 外观模式(Facade)大白话讲解!
java·设计模式·外观模式
脚踏实地的大梦想家1 小时前
【Go】P17 Go语言并发编程核心:深入理解 Goroutine (从入门到实战)
java·开发语言·golang
Yeniden1 小时前
【设计模式】 组合模式(Composite)大白话讲解
java·设计模式·组合模式