53-java中的多态是怎么实现的
java中的多态是怎么实现的
多态在Java中是通过方法重写(Override)和方法重载(Overload)实现的。
-
方法重写(Override):
子类可以定义与父类相同名称和参数的方法,返回类型和异常类型应与父类相同或是其子类。当子类对象调用重写的方法时,会执行子类的实现,这就是方法重写。
class Animal {
void speak() {
System.out.println("Animal speaks");
}
}
class Dog extends Animal {
@Override
void speak() {
System.out.println("Dog barks");
}
}
public class PolymorphismExample {
public static void main(String[] args) {
Animal animal = new Dog(); // 向上转型
animal.speak(); // 输出 "Dog barks"
}
}
-
方法重载(Overload):
在同一个类中,可以定义多个同名方法,但每个方法的参数类型和/或参数数量不同,完成不同的功能。这就是方法重载。
class Calculator {
int add(int a, int b) {
return a + b;
}
double add(double a, double b) {
return a + b;
}
// 其他方法重载
}
public class PolymorphismExample {
public static void main(String[] args) {
Calculator calculator = new Calculator();
int sumInt = calculator.add(1, 2); // 调用int类型的add方法
double sumDouble = calculator.add(1.5, 2.5); // 调用double类型的add方法
}
}
多态的实现依赖于动态绑定,即在运行时根据对象的实际类型调用相应的方法。这是如何实现多态的简单解释。