面向对象程序设计——第五章多态课后作业

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

/**
 * 父类打印机(抽象类)
 * @author Lenovo
 *
 */
abstract class Printers {
	/**
	 * 抽象方法
	 */
	public abstract void print(); 
}
class DotMatrixPrinter extends Printers {
	/**
	 * 重写父类方法
	 */
	public void print() {
		System.out.println("针式打印!");
	}
}
class InkpetPrinter extends Printers {
	/**
	 * 重写父类方法
	 */
	public void print() {
		System.out.println("喷墨式打印!");
	}
}
class LaserPrinter extends Printers {
	/**
	 * 重写父类方法
	 */
	public void print() {
		System.out.println("激光式打印!");
	}
}
public class Printer {
	public static void main(String[] args) {
		Printers printers = new DotMatrixPrinter();//父类应用指向子类对象
		printers.print();//输出针式打印机信息
		Printers printers1 = new InkpetPrinter();//父类应用指向子类对象
		printers1.print();//输出喷墨式打印机信息
		Printers printers2 = new LaserPrinter();//父类应用指向子类对象
		printers2.print();//输出激光式打印机信息
	}
}

2.请使用多态实现以下需求,牛犇有两个很要好的朋友,一个是中国的王小强,喜欢吃四川菜,练太极拳,另一个是美国的约翰,喜欢吃披萨,打橄榄球,每当朋友来拜访时,牛犇都会按各自的喜好招待他们。

package come.job.dome;
/**
 * 
 * @author 主人类
 *
 */
public abstract class Master {  

String masterName = "牛犇"; //主人姓名  
      
String name = " "; //客人姓名  
      
String eat = " "; //吃的菜  
      
String hobby = " ";  //客人的爱好

public void serve(Master master) {
	
	if(master instanceof Friend) {
		
		Friend friend = (Friend)master;
		
		friend.serve();
		
	}else if(master instanceof Friend1) {
		
		Friend1 friend1 = (Friend1)master;
		
		friend1.serve();
	}
}
public abstract void serve(); //抽象招待方法  
}      
 package come.job.dome;
/**
 * 
 * @author 王小强
 *
 */
public class Friend extends Master{
	public void serve() {
		super.name = "王小强";
		super.eat = "四川菜";
		super.hobby = "练太极拳";
		System.out.println(this.masterName+"在招待"+super.name+"吃"+super.eat+","+super.hobby);
	}
}
package come.job.dome;
/**
 * 
 * @author 约翰
 *
 */
public class Friend1 extends Master {
	public void serve() {
		super.name = "约翰";
		super.eat = "披萨";
		super.hobby = "打橄榄球";
		System.out.println(this.masterName+"在招待"+super.name+"吃"+super.eat+","+super.hobby);
	}
}
package come.job.dome;

import java.util.Scanner;

public class Test {
public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.print("请输入谁来拜访(1.王小强,2.约翰):");
		if(input.nextInt()==1) {
			Master master = new Friend(); 
			master.serve(master);
		}else if(input.nextInt()==2) {
			Master master = new Friend1(); 
			master.serve(master);
		}
	}
}

猜你喜欢

转载自blog.csdn.net/qq_41882685/article/details/80170203