1,编辑一个抽象方法子类继承重写打印方法
package com.bdqn.demo;
abstract class Printer{//父类打印
public abstract void print();//打印方法
}
class DotMatrixPrinter extends Printer{
public void print() {//打印方法
System.out.println("针式打印机正在打印");
}
}
class InkPetPrinter extends Printer{
public void print() {
System.out.println("喷墨打印机正在打印");
}
}
class LaserPrinter extends Printer{
public void print() {
System.out.println("激光打印机正在打印");
}
}
public class PrinterTest {
public static void main(String[] args) {
Printer p=new DotMatrixPrinter();//指向子类对象
p.print();//调用方法
Printer p1=new InkPetPrinter ();
p1.print();
Printer p2=new LaserPrinter ();
p2.print();
}
}
2,牛犇有两个朋友每当朋友拜访时牛犇都会按各人喜好招待他们
package com.baqn.demo;
import java.util.Scanner;
abstract class Friend{//父类朋友
protected String name;//名字
protected String dish;//菜
public Friend(String name,String dish) {//构造
this.name=name;
this.dish=dish;
}
public String getDish() {//获取菜名
return dish;
}
public String getName() {//获取姓名
return name;
}
public abstract void eat();//抽象方法
}
class China extends Friend{//中国朋友
public China(String name,String dish) {
super(name,dish);//传参
}
public void eat() {//吃方法
System.out.println("我的中国朋友"+this.name+"正在吃"+this.dish);
}
public void playBox() {//玩方法
System.out.println("打太极拳!");
}
}
class America extends Friend{//美国朋友
public America(String name,String dish) {
super(name,dish);
}
public void eat() {//吃方法
System.out.println("我的美国朋友"+this.name+"正在吃"+this.dish);
}
public void playBall() {//玩方法
System.out.println("打橄榄球!");
}
}
class Mas{
private String name;
public Mas(String name) {
this.name=name;
}
public String getName() {
return name;
}
public Friend getFriend(String choose) {
switch(choose) {
case "1"://如果选1返回中国朋友
return new China("王小强","四川菜");
case "2"://如果选2返回美国朋友
return new America("约翰","披萨");
}
return null;
}
public void play(Friend f) {//父类强转子类调用子类特有方法
if(f instanceof China) {
China c=(China)f;
c.playBox();
}else {
America a=(America)f;
a.playBall();
}
}
}
public class FriendTest {
public static void main(String[] args) {
Scanner input =new Scanner(System.in);
System.out.print("请选择要招待的朋友:(1,中国朋友2,美国朋友)");
String choose=input.next();
Mas m=new Mas("牛犇");
Friend f=m.getFriend(choose);
f.eat();
m.play(f);
}
}