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);

    }
}
相关推荐
csbysj20202 分钟前
Python 循环嵌套
开发语言
测试_AI_一辰5 分钟前
Agent & RAG 测试工程05:把 RAG 的检索过程跑清楚:chunk 是什么、怎么来的、怎么被命中的
开发语言·人工智能·功能测试·自动化·ai编程
Coding茶水间7 分钟前
基于深度学习的输电电力设备检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
开发语言·人工智能·深度学习·yolo·目标检测·机器学习
清风~徐~来11 分钟前
【视频点播系统】BRpc 介绍及使用
开发语言
啟明起鸣13 分钟前
【C++ 性能提升技巧】C++ 的引用、值类型、构造函数、移动语义与 noexcept 特性,可扩容的容器
开发语言·c++
故以往之不谏14 分钟前
函数--值传递
开发语言·数据结构·c++·算法·学习方法
今天_也很困23 分钟前
LeetCode热题100-560. 和为 K 的子数组
java·算法·leetcode
卢锡荣28 分钟前
Type-c OTG数据与充电如何进行交互使用应用讲解
c语言·开发语言·计算机外设·电脑·音视频
在繁华处37 分钟前
线程进阶: 无人机自动防空平台开发教程V2
java·无人机