美文网首页
Java中的多态性如何实现?

Java中的多态性如何实现?

作者: JAVA加油 | 来源:发表于2023-07-03 08:03 被阅读0次

    Java中的多态性如何实现?

    Java中的多态性可以通过两种方式实现:重写(Override)和重载(Overload)。

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

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

    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()方法:

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

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

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

    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()方法:

    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

    总之,Java中的多态性可以通过重写和重载两种方式实现,在不同的情况下具有不同的行为,具体的行为取决于方法所操作的对象。重写是运行时多态性或动态多态性,而重载是编译时多态性或静态多态性。

    相关文章

      网友评论

          本文标题:Java中的多态性如何实现?

          本文链接:https://www.haomeiwen.com/subject/ihfgydtx.html