多态

本文详细介绍了Java中多态的实现步骤,包括使用父类作为方法形参和返回值来实现多态。通过创建宠物类Pet及其子类Dog和Penguin,展示了如何在主人类Master中进行喂食操作,以及根据用户输入领养不同类型的宠物。实例代码展示了多态在实际编程中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多态的实现
多态的实现步骤:
(1)编写父类
(2)编写子类,子类重写父类方法
(3)运行时,使用父类的类型、子类的对象
Pet pet = new Dog();

实现多态的两种形式:
使用父类作为方法形参实现多态
使用父类作为方法返回值实现多态

1.使用父类作为方法形参实现多态
以下实现一个主人喂食宠物例子:
(1)新建宠物类Pet,是一个抽象类
/**

  • 宠物类,狗狗和企鹅的父类
    */
    public abstract class Pet {

    /**

    • 抽象方法eat(),负责宠物吃饭功能。
      */
      public abstract void eat();

}
(2)新建狗狗类,继承Pet,并实现吃食方法eat()
/**

  • 狗狗类,宠物的子类
    */
    public class Dog extends Pet {

    /**

    • 实现吃食方法。
      /
      public void eat() {
      System.out.println(“狗狗吃饭中!”);
      }
      }
      (3)新建企鹅类,继承Pet,并实现吃食方法eat()
      /
      *
  • 企鹅类,宠物的子类
    /
    public class Penguin extends Pet {
    /
    *

    • 实现吃食方法。
      /
      public void eat() {
      System.out.println(“企鹅吃饭中!”);
      }
      }
      (4)新建主人类,负责给宠物喂食,将抽象类Pet作为方法形参
      /
      *
  • 主人类
    /
    public class Master {
    /
    *

    • 主人给宠物喂食
      /
      public void feed(Pet pet) {
      pet.eat();
      }
      }
      (5)新建测试类Test,执行主人的喂食方法
      /
      *
  • 测试类,给宠物喂食
    */
    public class Test {
    public static void main(String[] args) {
    Dog dog = new Dog();
    Penguin pgn = new Penguin();

     Master master=new Master();
     master.feed(dog);//主人给狗狗喂食
     master.feed(pgn);//主人给企鹅喂食
    

    }
    }
    运行测试类Test,输出结果为:
    狗狗吃饭中!
    企鹅吃饭中!

2.使用父类作为方法返回值实现多态
以下继续实现一个主人领养宠物例子:
(1)在主人类中添加领养宠物的方法
/**

  • 主人领养宠物
  • @param typeId 宠物编号
  • @return
    */
    public Pet getPet(int typeId){
    Pet pet=null;
    if(typeId1){
    pet= new Dog();
    }else if(typeId
    2){
    pet = new Penguin();
    }
    return pet;
    }
    (2)新建测试类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(“对不起,没有此类型的宠物,领养失败”);
}
}
}
运行测试类Test2:在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值