大家好,我是小欧!
今天我们来聊聊Java里的一个大招——多态。别被这高大上的名字吓住了,其实多态是我们日常编程中很实用的一部分。掌握了它,你的代码不仅能变得更灵活,还能更容易维护。话不多说,咱们开始吧!
多态是啥?
多态(Polymorphism),顾名思义,就是“多种形态”。简单来说,就是同一个方法在不同的对象上有不同的表现。想象一下,同样是“发出声音”,狗叫“汪汪”,猫叫“喵喵”,这就是多态啦!
多态有几种玩法?
在Java里,多态有两种主要的玩法:编译时多态(静态绑定)和运行时多态(动态绑定)。
- 编译时多态:靠的是方法重载。同一个类里,方法名一样,但参数不一样,这就是重载。
- 运行时多态:靠的是方法重写。子类把父类的方法重新实现一遍。
方法重载(编译时多态)
咱们先来看看方法重载的例子。假设有个简单的计算器类,负责加法运算:
public class Calculator {
// 加法方法:两个整数相加
public int add(int a, int b) {
return a + b;
}
// 加法方法:三个整数相加
public int add(int a, int b, int c) {
return a + b + c;
}
// 加法方法:两个小数相加
public double add(double a, double b) {
return a + b;
}
}
看到了吧,add
方法有三个版本。虽然名字一样,但参数不同,所以它们是重载的。调用这些方法时,编译器会根据参数选对版本。
public class TestCalculator {
public static void main(String[] args) {
Calculator calc = new Calculator();
System.out.println(calc.add(2, 3)); // 输出: 5
System.out.println(calc.add(2, 3,