2016/08/20 继承练习题(2)

题目描述:
有黑白的和彩色的两种打印机,输入打印机名称,打印相应结。

步骤:
定义一个父类Printer,在其中定义打印机名称以及方法print

package com.jer.ch09.printer;

public class Printer {

    protected String name;

    public Printer(String name) {
        super();
        this.name = name;
    }

    public void print() {
        // TODO Auto-generated method stub
        System.out.println("您使用的是"+name+"打印机 ");
    }
}

定义子类黑白打印机和彩色打印机

package com.jer.ch09.printer;

public class BlackPrinter extends Printer {

    public BlackPrinter() {
        super(PrinterFactory.BLACK);
    }

    public void print() {
        super.print();
        System.out.println("打印的是黑白的");
    }
}
package com.jer.ch09.printer;

public class ColorPrinter extends Printer {

    public ColorPrinter() {
        super(PrinterFactory.COLOUR);
        // TODO Auto-generated constructor stub
    }

    public void print() {
        super.print();
        System.out.println("打印的是黑白的");
    }
}

定义一个工厂类:

package com.jer.ch09.printer;

public class PrinterFactory {

    public static final String BLACK = "黑白";
    public static final String COLOUR = "彩色";

    public static Printer getPrinter(String name) {
        switch (name) {
        case BLACK:
            return new BlackPrinter();
        case COLOUR:
            return new ColorPrinter();
        default:
            return null;
        }
    }
}

定义一个测试类,测试结果:

package com.jer.ch09.printer;

import java.util.Scanner;

public class Test {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        Printer printer = null;
        while (true) {
            System.out.print("请输入打印机种类:");
            printer = PrinterFactory.getPrinter(input.next());
            if (printer!=null) {
                printer.print();
                input.close();
                return;
            }else {
                System.out.println("您输入的打印机种类有误");
            }
        }
    }
}

你可能感兴趣的:(java)