
多态是面向对象编程的三大特性之一封装、继承、多态指同一行为具有多种不同表现形式。在Java中多态允许父类引用指向子类对象并通过重写Override实现不同子类的差异化行为。Java多态的实现方式方法重写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(); } }接口多态接口定义方法规范不同实现类提供具体实现。通过接口引用调用方法时实际执行的是实现类的逻辑。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(); } }方法重载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的方法无法被子类修改。