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

    }
}
相关推荐
量化分析码农30 分钟前
股票历史数据的复权参数对照:多级别返回的字段与数值差异
java·javascript·后端
猫猫不是喵喵.40 分钟前
从0到1创建一个微服务项目
java·数据库·微服务·1024程序员节
熊猫钓鱼>_>1 小时前
普通用户视角的端侧智能体验手记【鸿蒙心迹】
开发语言·人工智能·华为·智能手机·性能优化·ai编程·harmonyos
瑞雪兆丰年兮1 小时前
JavaWeb-day13-SpringBootWeb事务管理&AOP
java·开发语言·springboot·javaweb·事务·web·aop
曲径海盗1 小时前
Try-Except怎么用,3个追问解答在自动化下的应用
java·jvm·oracle
Cosolar2 小时前
极简智库:快速搭建你的开源项目教程阅读平台,让 docs/ 目录被更多人看见
java·架构·github
nice_lcj5202 小时前
【从零理解 Spring AI · 16】Agent 与工作流:什么该写死,什么该让模型决定
java·人工智能·后端·spring ai·ai应用开发
布莱克6053 小时前
Swift 常量详解:从 let 到编译期优化
服务器·开发语言·ssh·swift·常量·let
北京云帆互联科技3 小时前
云帆培训考试系统更新说明:v9.3.0
java·学习
布莱克6053 小时前
Swift 可选类型(Optionals)详解:从原理到实战
开发语言·安全·ssh·swift·optional·可选类型