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

Java的多态

多态是面向对象编程的三大特性之一(封装、继承、多态),指同一行为具有多种不同表现形式。在Java中,多态允许父类引用指向子类对象,并通过重写(Override)实现不同子类的差异化行为。

Java多态的实现方式

  1. 方法重写(Override)
    子类继承父类后,可以重写父类的方法。调用时根据实际对象类型决定执行哪个方法。

    class Animal { void sound() { System.out.println("Animal makes sound"); } } class Dog extends Animal { @Override void sound() { System.out.println("Dog barks"); } } public class Main { public static void main(String[] args) { Animal myDog = new Dog(); myDog.sound(); } }
  2. 接口多态
    接口定义方法规范,不同实现类提供具体实现。通过接口引用调用方法时,实际执行的是实现类的逻辑。

    interface Shape { void draw(); } class Circle implements Shape { @Override public void draw() { System.out.println("Drawing a circle"); } } public class Main { public static void main(String[] args) { Shape shape = new Circle(); shape.draw(); } }
  3. 方法重载(Overload)
    同一类中方法名相同但参数列表不同,编译时根据参数类型决定调用哪个方法。

    class Calculator { int add(int a, int b) { return a + b; } double add(double a, double b) { return a + b; } } public class Main { public static void main(String[] args) { Calculator calc = new Calculator(); System.out.println(calc.add(1, 2)); System.out.println(calc.add(1.5, 2.5)); } }

多态的应用场景

  • 代码扩展性:新增子类无需修改父类逻辑。
  • 解耦:通过接口或父类引用调用方法,降低模块依赖性。
  • 统一处理:例如集合中存储不同子类对象,通过循环调用同一方法。

注意事项

  • 编译时与运行时类型:编译时检查父类/接口是否有方法定义,运行时执行子类方法。
  • 无法调用子类特有方法:父类引用需强制转型为子类类型后才能调用子类扩展的方法。
  • final方法不可重写:标记为final的方法无法被子类修改。
http://www.jsqmd.com/news/1091513/

相关文章:

  • 康迪科技战略控股信储新能源,布局快速增长的AI数据中心备用电源与储能市场
  • C#:pdb
  • 如何用 Codex 做财务复盘和情景规划
  • 笑君系列指标之四:笑君抄底
  • Agent 核心原理:工程实践里的常见坑
  • 小微企业营销数字化落地:deepshow基于多模态 AI 的全域内容自动化生产链路设计
  • 【Web基础】HTTPS详解
  • SolidWorks 2026下载安装教程(附安装包)2026最新版三维CAD设计软件
  • 企业级 AI 工具选购指南:ChatGPT Team vs Claude Team vs Gemini Business
  • PN学堂GD32教程第10篇——Modbus
  • 电商系统性能压测实战:从JMeter压测到瓶颈定位与优化
  • 3分钟解决Mac过热烦恼:Turbo Boost Switcher的智能温控方案
  • 腾讯内部都在用的WorkBuddy+乐享知识库?星哥带你拆解这套“王炸”工作流!
  • 如何用novel-downloader拯救你随时可能消失的小说收藏
  • MoE混合专家模型原理与工业级部署实战
  • Sakura启动器:AI翻译模型一键部署的终极解决方案
  • HackingBuddyGPT:基于LLM的智能渗透测试助手实战指南
  • DIR9001-Q1数字音频接收器:双相信号解码、错误处理与采样率检测详解
  • 终极指南:如何快速批量下载微博高清图片到本地
  • GTA5线上小助手终极指南:解锁游戏隐藏功能的完整教程
  • ESP32S3 AP+MQTT Broker
  • 2026年6月武汉GEO优化服务趋势研判
  • 论文《AutoQual:基于LLM Agent的评论质量可解释特征自动发现方法》
  • 溢价30倍的义乌挂脖冰凉圈,在TikTok美区已卖百万
  • 数据价值归谁:一套让消费者、商家、政府都受益的产业操作系统
  • Linux 虚拟机的 HTTPS TLS 连接 GitHub 不稳定
  • 基于ruoyi-vue-pro的企业级技术架构深度解析与实战指南
  • 喜马拉雅VIP音频终极下载指南:用xmly-downloader-qt5永久保存付费内容
  • web安全代码基础-PHP(身份验证技术)
  • 深入解析PCIe热插拔:基于XIO3130的硬件设计与调试实践