深入理解Java多态性:原理、实现与应用实例
一、多态性概述
多态(Polymorphism)是面向对象编程的三大特性之一(封装、继承、多态),它指的是同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在Java中,多态主要表现为两种形式:
- 编译时多态(静态多态):通过方法重载实现
- 运行时多态(动态多态):通过方法重写和继承关系实现
二、编译时多态:方法重载
方法重载(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