1.编码创建一个打印类Printer,定义抽象方法print();创建两个子类,即针式打印机类DotMatrixPrinter和喷墨打印机类LnkpetPrinter,并在各自类中重写方法print(),编写测试类实现两种打印机打印,在添加一个激光打印机子类LaserPrinter,重写方法print(),修改测试类实现该打印机打印。
package com.homework.demo.test5_5; /** * 打印机抽象父类 * @author suixin * */ public abstract class Printer { /** * 抽象打印方法 */ public abstract void print(); } package com.homework.demo.test5_5; /** * 针式打印机类 * @author suixin * */ public class DotMatrixPrinter extends Printer{ @Override public void print() { // TODO Auto-generated method stub System.out.println("针式打印机"); } } package com.homework.demo.test5_5; /** * 喷墨打印机类 * @author suixin * */ public class InkpetPrinter extends Printer{ @Override public void print() { // TODO Auto-generated method stub System.out.println("喷墨打印机"); } } package com.homework.demo.test5_5; /** * 激光打印机类 * @author suixin * */ public class LaserPrinter extends Printer{ @Override public void print() { // TODO Auto-generated method stub System.out.println("激光打印机"); } } package com.homework.demo.test5_5; public class Test { public static void main(String[] args) { // TODO Auto-generated method stub Printer p = new DotMatrixPrinter(); //针式打印机 p.print(); Printer p1 = new InkpetPrinter(); //喷墨打印机 p1.print(); Printer p2 = new LaserPrinter(); //激光打印机 p2.print(); } }
2.请使用多态实现以下需求,牛犇有两个很要好的朋友,一个是中国的王小强,喜欢吃四川菜,练太极拳,另一个是美国的约翰,喜欢吃披萨,打橄榄球,每当朋友来拜访时,牛犇都会按各自的喜好招待他们。
package com.homework.demo.test5_6; /** * 主人类 * @author suixin * */ public abstract class Master { String masterName = "牛犇"; //主人姓名 String name = " "; //客人姓名 String eat = " "; //吃的菜 String hobby = " "; //客人的爱好 public abstract void serve(); //抽象招待方法 public void serve1(Master master) { if (master instanceof Guest1) { //如果是王小强 Guest1 guest1 = (Guest1)master; guest1.serve(); }else if (master instanceof Guest2) { //如果是约翰 Guest2 guest2 = (Guest2)master; guest2.serve(); } } } package com.homework.demo.test5_6; /** * 王小强类 * @author suixin * */ public class Guest1 extends Master{ /** * 招待王小强的方法 */ public void serve() { super.name = "王小强"; super.hobby = "练太极拳"; super.eat = "吃四川菜"; System.out.println(super.masterName + "在招待" + super.name + "一起" + super.eat+","+super.hobby); } } package com.homework.demo.test5_6; /** * 约翰类 * @author suixin * */ public class Guest2 extends Master { @Override public void serve() { // TODO Auto-generated method stub super.name = "约翰"; super.hobby = "打橄榄球"; super.eat = "吃披萨"; System.out.println(super.masterName + "在招待" + super.name + "一起" + super.eat + ","+ super.hobby); } } package com.homework.demo.test5_6; /** * 测试类 */ import java.util.Scanner; public class Test { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scanner = new Scanner(System.in); System.out.print("请问是谁哪个朋友来拜访(1.王小强 2.约翰):"); if (scanner.nextInt() == 1) { //王小强时 Master master = new Guest1(); master.serve1(master); }else { //约翰 Master master = new Guest2(); master.serve1(master); } } }