class Matrix { // 各种格式的文件最终都被转化为像素矩阵
    // 此处代码省略
}

abstract class ImageImp {
    public abstract void doPaint(Matrix m); // 显示像素矩阵 m
}

class WinImp extends ImageImp {
    public void doPaint(Matrix m) { /*调用Windows系统的绘制函数绘制像素矩阵*/ }
}

class LinuxImp extends ImageImp {
    public void doPaint(Matrix m) { /*调用Linux系统的绘制函数绘制像素矩阵*/ }
}

abstract class Image {
    public void setImp(ImageImp imp) {
        （1） = imp;
    }
    public abstract void parseFile(String fileName);
    protected （2） imp;
}

class BMP extends Image {
    public void parseFile(String fileName) {
        // 此处解析BMP文件并获得一个像素矩阵对象 m
        （3）; // 显示像素矩阵 m
    }
}

class GIF extends Image {
    // 此处代码省略
}

class JPEG extends Image {
    // 此处代码省略
}

public class javaMain {
    public static void main(String[] args) {
        // 在 windows 操作系统上查看 demo.bmp图像文件
        Image image1 = （4）;
        ImageImp imageImp1 = （5）;
        （6）;
        Image1.parseFile("demo.bmp");
    }
}
