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); } } }