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

深入理解Java多态性:原理、实现与应用实例

一、多态性概述

多态(Polymorphism)是面向对象编程的三大特性之一(封装、继承、多态),它指的是同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在Java中,多态主要表现为两种形式:

  1. 编译时多态(静态多态):通过方法重载实现
  2. 运行时多态(动态多态):通过方法重写和继承关系实现

二、编译时多态:方法重载

方法重载(Overloading)是指在同一个类中,允许存在多个同名方法,只要它们的参数列表不同(参数类型、个数或顺序不同)。

特点与规则:

  • 发生在同一个类中
  • 方法名必须相同
  • 参数列表必须不同(类型、数量或顺序)
  • 返回类型可以相同也可以不同
  • 访问修饰符可以不同

实例代码:

public class Calculator {// 整数相加public int add(int a, int b) {return a + b;}// 小数相加(参数类型不同)public double add(double a, double b) {return a + b;}// 三个整数相加(参数数量不同)public int add(int a, int b, int c) {return a + b + c;}// 整数和小数相加(参数顺序不同)public double add(int a, double b) {return a + b;}public double add(double a, int b) {return a + b;}
}public class Main {public static void main(String[] args) {Calculator calc = new Calculator();System.out.println(calc.add(1, 2));        // 调用add(int, int)System.out.println(calc.add(1.5, 2.5));    // 调用add(double, double)System.out
http://www.lqws.cn/news/166861.html

相关文章:

  • 【Linux手册】冯诺依曼体系结构
  • day34- 系统编程之 网络编程(TCP)
  • ObjectMapper 在 Spring 统一响应处理中的作用详解
  • AI Agent 项目 SUNA 部署环境搭建 - 基于 MSYS2 的 Poetry+Python3.11 虚拟环境
  • 【操作系统】死锁
  • JSON Web Token (JWT) 详解:由来、原理与应用实践
  • 在 Ubuntu 24.04 LTS 上安装 Jenkins 并配置全局工具(Git、JDK、Maven)
  • LeetCode-70. 爬楼梯
  • 八、Python模块、包
  • QT中使用libcurl库实现到ftp服务器的上传和下载
  • C语言 — 编译和链接
  • 体制内 AI写作:推荐材料星 AI文章修改润色
  • 11. vue pinia 和react redux、jotai对比
  • 互联网大厂Java求职面试:AI与大模型技术在企业知识库中的深度应用
  • minimatch 详解:功能、语法与应用场景
  • uniapp+vue3实现CK通信协议(基于jjc-tcpTools)
  • IDEA 包分层显示设置
  • BT Panel密码修改
  • 【Redis】类型补充
  • ROS2--导航仿真
  • sumatraPDF设置深色界面
  • YOLOv11 | 注意力机制篇 | 可变形大核注意力Deformable-LKA与C2PSA机制
  • JTAG与SWD的功能辩解有和相关
  • Mysql主从复制原理分析
  • 缓解停车难:4G地磁如何重构车位分配?
  • proteus8安装教程
  • CppCon 2015 学习:C++ Metaprogrammin
  • 【虚拟机版本号】如果忘记了版本号,这样查找版本号
  • C++虚函数表(虚表Virtual Table,简称vtable、VFT)(编译器为支持运行时多态(动态绑定)而自动生成的一种内部数据结构)虚函数指针vptr
  • 【如何做好应用架构?】