接口:Printable 方法:print()

抽象类:1:BlackPrinter 实现 Printable ,print输出:黑白打印;2:ColorPrinter 实现 Printable ,print输出:彩色打印

具体类:1:LaserPrinter,继承 BlackPrinter,输出:黑白打印,激光打印;具体类 2:JetInkPrinter 继承 ColorPrinter ,print输出:彩色打印,喷墨打印

测试类:声明接口Printable 变量p,new一个激光打印机,一个喷墨打印机,分别用p指向两个打印机,用p调用print方法

https://blog.csdn.net/m0_46824767/article/details/105697794 试试?

interface Printable {
    void print();
}

class BlackPrinter implements Printable {
    @Override
    public void print() {
        System.out.println("黑白打印");
    }
}

class ColorPrinter implements Printable {
    @Override
    public void print() {
        System.out.println("彩色打印");
    }
}

class LaserPrinter extends BlackPrinter {
    @Override
    public void print() {
        super.print();
        System.out.println("激光打印");
    }
}

class JetInkPrinter extends ColorPrinter {
    @Override
    public void print() {
        super.print();
        System.out.println("喷墨打印");
    }
}

public class Test {
    public static void main(String[] args) {
        LaserPrinter laserPrinter = new LaserPrinter();
        JetInkPrinter jetInkPrinter = new JetInkPrinter();
        Printable p = laserPrinter;
        p.print(); 
        p = jetInkPrinter;
        p.print(); 
    }
}