1.创建打印机类
抽象类:
public abstract class Printer { public abstract void print();
}
子类:(针式打印机)
public class DotMatrixPrinter extends Printer { @Override public void print() { // TODO Auto-generated method stub System.out.println("针式打印机"); }
}
子类(喷墨式打印机):
public class Inkjetprinter extends Printer { @Override public void print() { // TODO Auto-generated method stub System.out.println("喷墨式打印机"); }
}
测试类:
public class Test { public static void main(String[] args) { // TODO Auto-generated method stub Printer p=new DotMatrixPrinter(); Printer p1=new Inkjetprinter(); p.print(); p1.print(); }
}
新增子类(激光打印机):
public class LaserPrinter extends Printer{ @Override public void print() { // TODO Auto-generated method stub System.out.println("激光打印机"); }
}
修改测试类:
public class Test { public static void main(String[] args) { // TODO Auto-generated method stub Printer p=new DotMatrixPrinter(); Printer p1=new Inkjetprinter(); Printer p2=new LaserPrinter(); p.print(); p1.print(); p2.print(); }
}
请使用多态实现以下需求:牛奔有两个很要好的朋友,一个是来自中国的王小强,喜欢吃四川菜去,喜欢练太极拳;一个是美国的约翰,喜欢吃披萨,打橄榄球。每当朋友来拜访时,都会按照客人的喜欢招待他们父类:
public abstract class Friend { protected String name; protected String food; protected String play; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getFood() { return food; } public void setFood(String food) { this.food = food; } public String getPlay() { return play; } public void setPlay(String play) { this.play = play; } public Friend(String name, String food, String play) { super(); this.name = name; this.food = food; this.play = play; } public abstract void print() ;
}
子类:(中国的朋友)
public class China extends Friend { private String contrie; public String getContrie() { return contrie; } public void setContrie(String contrie) { this.contrie = contrie; } public China(String name, String food, String play, String contrie) { super(name, food, play); this.contrie = contrie; } public void print() { System.out.println("来自"+this.contrie+"的朋友"+super.name+"喜欢吃"+super.food+",打"+super.play); }
}
子类(美国的朋友):
public class America extends Friend { private String contrie; public String getContrie() { return contrie; } public void setContrie(String contrie) { this.contrie = contrie; } public America(String name, String food, String play,String contrie) { super(name, food, play); this.contrie=contrie; // TODO Auto-generated constructor stub } @Override public void print() { System.out.println("来自"+this.contrie+"的朋友"+super.name+"喜欢吃"+super.food+",打"+super.play); }
}
主人类(王小强):
public class Master { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public Master(String name) { super(); this.name = name; } public void print(Friend f) { f.print(); }
}
测试类:
public class Test { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in=new Scanner(System.in); Master m=new Master("牛犇"); Friend ameica=new America("约翰","披萨", "橄榄球", "美国"); Friend china=new China("王小强", "四川菜", "太极拳", "中国"); m.getName(); System.out.println("请输入拜访的朋友:(1.美国朋友 2.中国朋友)"); int typeId=in.nextInt(); if(typeId==1) { System.out.print(m.getName()+"正在招待"); m.print(ameica); }else if(typeId==2) { System.out.print(m.getName()+"正在招待"); m.print(china); }else { System.out.println("你的朋友还在外星,快去请他"); } }}
