实现多态
多态是指,同一个事件发生在不同的对象上会产生不同的结果。
多态的实现步骤:
(1)编写父类
(2)编写子类,子类重写父类方法
(3)运行时,使用父类的类型、子类的对象
使用父类当作方法实现多态:
父类代码:
package com.my.java;
public abstract class Pet {
public abstract void eat();
}
建立子类继承父类
代码:
package com.my.java;
public class Dog extends Pet {
public void eat(){
System.out.println("狗狗吃饭");
}
}
package com.my.java;
public class Penguin extends Pet{
public void eat(){
System.out.println("企鹅吃饭");
}
}
运行代码
package com.my.java;
public class Master {
public void feed(Pet pet){
pet.eat();
}
public static void main(String[] args) {
Dog dog =new Dog();
Penguin pgn = new Penguin();
Master master=new Master();
master.feed(dog);
master.feed(pgn);
}
}
使用父类当作返回值实现多态:
在master中添加领养方法:
public Pet getPet(int typeId){
Pet pet=null;
if(typeId==1){
pet= new Dog();
}else if(typeId==2){
pet = new Penguin();
}
return pet;
}
增加test2类:
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
System.out.println("欢迎您来到宠物店!");
System.out.print("请选择要领养的宠物类型:(1、狗狗 2、企鹅)");
Scanner input = new Scanner(System.in);
//获取选择的宠物类型
int typeId=input.nextInt();
//领养宠物
Master master=new Master();
Pet pet=master.getPet(typeId);
if(pet!=null){
System.out.println("领养成功!");
//开始喂食
master.feed(pet);
}else{
System.out.println("对不起,没有此类型的宠物,领养失败");
}
}
}