JAVA中利用墨盒和纸张接口实现是用黑白墨盒在a4纸上打印的代码
时间: 2024-12-15 13:21:44 浏览: 8
在Java中,为了实现类似墨盒和纸张的概念,我们可以创建两个接口Printer(打印机)和ColorPrintable(彩色打印支持),以及两个实现类BlackPen(黑墨水笔)和WhitePaper(白纸)。然后我们让BlackPen实现Printer接口,并让A4Paper实现ColorPrintable接口。下面是一个简单的示例:
```java
// 定义接口
interface Printer {
void print();
}
interface ColorPrintable {
void printWithColor(Pen pen);
}
// 实现类
class BlackPen implements Printer {
@Override
public void print() {
System.out.println("使用黑墨水在纸上打印");
}
}
class WhitePaper implements ColorPrintable {
@Override
public void printWithColor(Pen pen) {
if (pen instanceof BlackPen) {
System.out.println("在A4白纸上用黑墨水打印");
} else {
throw new IllegalArgumentException("只支持黑色墨水");
}
}
}
public class Main {
public static void main(String[] args) {
// 创建并打印
Printer blackPrinter = new BlackPen(); // 黑色墨水笔打印机
blackPrinter.print(); // 打印文字
// 额外尝试彩色打印,但需要兼容彩色功能
try {
WhitePaper paper = new WhitePaper();
ColorPrintable colorPrinter = (ColorPrintable) blackPrinter; // 将黑墨水笔视作颜色打印机
paper.printWithColor(colorPrinter); // 抛出异常,因为黑墨水不支持彩色打印
} catch (ClassCastException e) {
e.printStackTrace();
}
}
}
```
在这个例子中,`BlackPen`代表墨盒,`WhitePaper`代表纸张,它们通过接口关联起来。然而,由于黑墨水笔并不实际支持彩色打印,所以在尝试将黑墨水笔当作彩色打印机使用时会抛出异常。
阅读全文