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); } }