面向对象第五章课后习题

1.编码创建一个打印类Printer,定义抽象方法print();创建两个子类,即针式打印机类DotMatrixPrinter和喷墨打印机类LnkpetPrinter,并在各自类中重写方法print(),编写测试类实现两种打印机打印,在添加一个激光打印机子类LaserPrinter,重写方法print(),修改测试类实现该打印机打印。
package kehouzuoye;

public abstract class Printer {
	public abstract void print();//父类抽象方法,在子类中实现
}package kehouzuoye;

public class DotMatrixPrinter extends Printer {
	public void print() {
		System.out.println("针式打印机正在打印");
	}
}
package kehouzuoye;

public class LaserPrinter extends Printer {
	public void print() {
		System.out.println("激光打印机正在打印");
	}
}package kehouzuoye;

public class LnkpetPrinter extends Printer {
	public void print() {
		System.out.println("喷墨打印机正在打印");
	}
}package kehouzuoye;

public class Test {

	public static void main(String[] args) {
		//父类引用指向子类对象DotMatrixPrinter
		Printer pr = new DotMatrixPrinter();
		pr.print();
		//父类引用指向子类对象LnkpetPrinter
		Printer pr2 = new LnkpetPrinter();
		pr2.print();
		//父类引用指向子类对象LaserPrinter
		Printer pr3 = new LaserPrinter();
		pr3.print();
	}
}
2.请使用多态实现以下需求,牛犇有两个很要好的朋友,一个是中国的王小强,喜欢吃四川菜,练太极拳,另一个是美国的约翰,喜欢吃披萨,打橄榄球,每当朋友来拜访时,牛犇都会按各自的喜好招待他们。
package kehouzuoye2;

public abstract class Niu {
	String name;//姓名
	String hobby;//爱好
	public abstract void print();//抽象方法用子类实现不同的作用
}package kehouzuoye2;

public class Wang extends Niu {

	@Override
	//重写父类抽象方法
	public void print() {
		System.out.println("姓名:"+this.name+"喜欢"+this.hobby);

	}
}
package kehouzuoye2;

public class Yue extends Niu {

	@Override
	//重写父类抽象方法
	public void print() {
		System.out.println("姓名:"+this.name+"喜欢"+this.hobby);

	}
}package kehouzuoye2;

import java.util.Scanner;

public class Test {

	public static void main(String[] args) {
		Niu n = new Wang();
		n.name = "王小强";
		n.hobby = "吃四川菜,练太极拳";
		Niu n2 = new Yue();
		n2.name = "约翰";
		n2.hobby = "吃披萨,打橄榄球";
		Scanner input = new Scanner(System.in);
		System.out.println("请问来访的是谁?(请输入姓名:)");
		String name = input.next();
		if (name.equals("王小强")) {
			n.print();
		} else if (name.equals("约翰")) {
			n2.print();
		}
	}
}

猜你喜欢

转载自blog.csdn.net/duanhaifeng55/article/details/80169652