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

[Java 基础]面向对象-多态

多态是指同一个行为在不同对象上具有不同的表现形式。

比如:叫是一个方法,对于不同的动物,叫声是不一样的,但是基本所有的动物都会叫。

要实现多态的效果,需要:

  • 继承
  • 重写
  • 父类引用指向子类对象:Parent p = new Child(),这个是 “向上转型”

下面是代码例子:

class Animal {void makeSound() {System.out.println("动物发出声音");}
}class Dog extends Animal {void makeSound() {System.out.println("狗:汪汪!");}
}class Cat extends Animal {void makeSound() {System.out.println("猫:喵喵!");}
}spublic class TestPolymorphism {public static void main(String[] args) {Animal a1 = new Dog(); // 向上转型Animal a2 = new Cat();a1.makeSound(); // 输出:狗:汪汪!a2.makeSound(); // 输出:猫:喵喵!}
}

:::danger
虽然变量类型是 Animal,但运行时会根据实际对象类型(Dog 或 Cat)调用正确的方法,这就是动态绑定。

:::

合理的使用多态,能增强代码的可扩展性强,新增子类时,原有代码几乎不需要改动。

相关文章:

  • C语言到底使用什么编码
  • git删除本地分支和远程分支
  • 【力扣】3403. 从盒子中找出字典序最大的字符串 I
  • 2025年6月4日收获
  • 佳易王钟表手表维修养护管理系统:高效便捷的维修管理解决方案
  • NX948NX951美光固态芯片NX956NX960
  • 《江西棒垒球》败方mvp叫什么·棒球1号位
  • Python数据可视化科技图表绘制系列教程(二)
  • 高防IP可以防护什么攻击类型?企业网络安全的第一道防线
  • zookeeper 学习
  • 尝试使用gocryptfs实现大模型加密部署
  • 如何利用乐维网管进行IP管理
  • Python中的`with`语句用法
  • 如何选择合适的分库分表策略
  • MQTT协议:物联网时代的通信基石
  • 《manacher》题集
  • LLM之RAG实战(五十四)| 复杂文档处理RAG框架:Ragflow
  • 列出浏览器所有的启动参数,并解释说明每个参数的含义
  • 多线程与fork使用
  • Unity 大型手游碰撞性能优化指南
  • 河北网站优化/搜外seo
  • 北湖建设局网站/免费制作网站的软件
  • 如何在工商局网站做企业年报/seo关键字优化
  • 移动端网站开发语言/seo还有哪些方面的优化
  • 初创公司网站设计苏州/成免费crm特色
  • 做盗版电影网站赚钱吗/全网营销策划公司