多态

2023-07-02  本文已影响0人  JAVA加油

多态

多态(Polymorphism)指的是同一个方法在不同情况下具有不同的行为,具体的行为取决于方法所操作的对象。它是面向对象编程中的一个重要概念,可以提高代码的灵活性和可扩展性。

在Java中,多态性可以通过以下两种方式实现:

重写(Override):子类可以重写父类的方法,这样,当调用该方法时,实际执行的是子类重写后的方法。这种多态性称为运行时多态性或动态多态性,因为它是在运行时根据对象的类型确定执行的方法。

例如,假设有如下的Animal类和Dog类:

java

Copy

public class Animal {    public void makeSound() {        System.out.println("Animal makes sound");}}public class Dog extends Animal {    @Override    public void makeSound() {        System.out.println("Dog barks");}}

当我们创建一个Animal对象和一个Dog对象,并分别调用它们的makeSound()方法时,Animal对象实际执行的是Animal类中的makeSound()方法,而Dog对象实际执行的是Dog类中重写后的makeSound()方法:

java

Copy

Animal animal = new Animal();Dog dog = new Dog();animal.makeSound(); // 输出:Animal makes sounddog.makeSound(); // 输出:Dog barks

重载(Overload):同一个类中可以定义多个方法,这些方法具有相同的名字但不同的参数列表(类型或数量),这种多态性称为编译时多态性或静态多态性,因为它是在编译时根据方法的参数类型和数量确定执行的方法。

例如,假设有如下的Calculator类:

java

Copy

public class Calculator {    public int add(int x, int y) {        return x + y;}    public double add(double x, double y) {        return x + y;}}

当我们调用Calculator对象的add()方法时,根据参数的类型和数量,编译器会自动选择调用哪个add()方法:

java

Copy

Calculator calculator = new Calculator();int result1 = calculator.add(1, 2); // 调用add(int x, int y)方法,返回3double result2 = calculator.add(1.0, 2.0); // 调用add(double x, double y)方法,返回3.0

总之,多态是面向对象编程中的一个重要概念,可以提高代码的灵活性和可扩展性。它可以通过重写和重载两种方式实现,在不同的情况下具有不同的行为,具体的行为取决于方法所操作的对象。

上一篇 下一篇

猜你喜欢

热点阅读