public abstract class Printer {
public abstract void print();//父类抽象方法,在子类中实现
}
package Demon;
public class DotMatrixPrinter extends Printer {
public void print() {
System.out.println("针式打印机正在打印");
}
}
package Demon;
public class LaserPrinter extends Printer {
public void print() {
System.out.println("激光打印机正在打印");
}
}
package Demon;
public class LnkpetPrinter extends Printer {
public void print() {
System.out.println("喷墨打印机正在打印");
}
}
package Demon;
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();
}
}
*************************************************************************
package CookBook;
public abstract class Niu { //(题目二:.请使用多态实现以下需求,牛犇有两个很要好的朋友,一个是中国的王小强,喜欢吃四川菜,练太极拳,另一个是美国的约翰,喜欢吃披萨,打橄榄球,每当朋友来拜访时,牛犇都会按各自的喜好招待他们。)
String name; // 姓名
String hobby; // 爱好
public abstract void print();// 抽象方法用子类实现不同的作用
}
package CookBook;
public class Wang extends Niu {
// 重写父类抽象方法
public void print() {
System.out.println("姓名:" + this.name + "喜欢" + this.hobby);
}
}
package CookBook;
public class John extends Niu {
// 重写父类抽象方法
public void print() {
System.out.println("姓名:" + this.name + "喜欢" + this.hobby);
}
}
package CookBook;
import java.util.Scanner;
public class InPut {
public static void main(String[] args) {
Niu n = new Wang();
n.name = "王小强";
n.hobby = "吃四川菜,练太极拳";
Niu n2 = new John();
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();
}
}
}