多态

多态(Polymorphism)
= “同一种行为,在不同对象上表现出不同形态”
它是面向对象三大特性之一,也是 Java 运行时系统最核心、最常用、最能体现“扩展性”的机制。

一句话记住
“编译时看左边,运行时看右边。”

  1. 多态存在的 3 个前提(面试高频)

  1. 继承 / 接口实现
  2. 方法重写(override)
  3. 父类/接口引用指向子类对象(向上转型)

  1. 代码 30 秒看懂

java
复制
interface Animal {                // 1. 共同接口
    void shout();
}

class Dog implements Animal {     // 2. 子类重写
    public void shout() { System.out.println("汪汪"); }
}

class Cat implements Animal {
    public void shout() { System.out.println("喵喵"); }
}

public class Demo {
    public static void main(String[] args) {
        Animal a1 = new Dog();    // 3. 向上转型
        Animal a2 = new Cat();
        a1.shout();               // 运行时 Dog 的版本 → 汪汪
        a2.shout();               // 运行时 Cat 的版本 → 喵喵
    }
}
 
同样一句 a.shout(),具体叫声由“真实对象”决定,这就是多态。
 
posted @ 2025-09-26 16:32  人在代码在  阅读(5)  评论(0)    收藏  举报