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("你的朋友还在外星,快去请他");
}
}
}