当前位置: 首页 > article >正文

多态的体现

多态:当不同的对象去完成某个行为时会产生出不同的状态

多态体现:

在代码运行时,当传递不同类对象时,会调用对应类中的方法。

public class Animal {
    String name;
    int age;
    public Animal(String name, int age){
        this.name = name;
        this.age = age;
    }
    public void eat(){
        System.out.println(name + "吃饭");
    }
}

public class Cat extends Animal{
    public Cat(String name, int age){
        super(name, age);
    }
    @Override
    public void eat(){
        System.out.println(name+"吃鱼~~~");
    }
}

public class Dog extends Animal {
    public Dog(String name, int age){
        super(name, age);
    }
    @Override
    public void eat(){
        System.out.println(name+"吃骨头~~~");
    }
}

public class TestAnimal {
    public static void eat(Animal a){
        a.eat();
    }
    public static void main(String[] args) {
        Cat cat = new Cat("元宝",2);
        Dog dog = new Dog("小七", 1);
        eat(cat);
        eat(dog);
    }
}

在这里插入图片描述
在这里插入图片描述

虽然方法的参数类型是Animal,但实际调用的却是子类的eat方法,这正是多态的体现
在这里插入图片描述


http://www.kler.cn/a/369297.html

相关文章:

  • xlnt加载excel报错:‘localSheetId‘ expected
  • 理解磁盘结构---CHS---LAB---文件系统
  • Docker 常用命令全解析:提升对雷池社区版的使用经验
  • 微信机器人自动回复了解下
  • QT中采用QCustomPlot 实现将buffer中的数据绘制成折线图,并且图形随着数据更新而更新
  • 【最全基础知识2】机器视觉系统硬件组成之工业相机镜头篇--51camera
  • 【数据结构与算法】第5课—数据结构之双链表
  • 网络原理之 TCP解释超详细!!!
  • 面试域——面试系统工程
  • Allegro:强大的文本到视频模型
  • 685. 冗余连接 II
  • [LeetCode] 784. 字母大小写全排序
  • 聚合值和非聚合值比较【SQL】
  • 基于SpringBoot的高考志愿智能推荐系统的设计与实现
  • Stable diffusion inference 多卡并行
  • FAQ-为什么交换机发给服务器的日志显示的时间少8小时
  • 易考八股文之如何对数据库进行优化(优化不少于十条)
  • 【学术会议论文投稿】“从零到一:使用IntelliJ IDEA打造你的梦幻HTML项目“
  • Android 原生开发与Harmony原生开发浅析
  • 压缩传感革命——自动验证算法证明了神经网络的准确性
  • ETL、ELT和反向ETL都有什么不同?怎么选择?
  • 基于vue框架的的高校学生资助信息系统3b240(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
  • Linux服务器自动化批量安装IB网卡驱动
  • Git - 如何删除 push 过一次的文件链路追踪?
  • autMan奥特曼机器人-实时翻译的用法
  • 常用 SQL 语句的大全