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