以多态方式调用方法
多态是面向对象编程中的一个重要概念,它允许我们以不同的形式表示相同的操作。在Java中,多态性主要体现在方法重载和方法重写。
1. 方法重载 (Overloading)
方法重载是在一个类中定义多个方法名相同但参数列表不同的方法。当我们通过一个对象调用方法时,Java虚拟机(JVM)会根据传递的参数类型和数量来决定调用哪个方法。这就是多态的一种表现形式。
例如:
```java
class Animal {
    void sound() {
        ("Animal makes a sound");
    }
}
class Dog extends Animal {
    Override
    void sound() {
        ("Dog barks");
    }
}
java重载```
在这个例子中,`Dog`类重写了`Animal`类的`sound()`方法。当我们通过一个`Dog`对象调用`sound()`方法时,将会输出“Dog barks”。这就是多态的表现。
2. 方法重写 (Overriding)
当子类继承父类并定义一个与父类同名的方法时,就发生了方法重写。在运行时,JVM会根据对象的实际类型来决定调用哪个方法,这就是多态的另一种表现形式。
例如:
```java
class Animal {
    void sound() {
        ("Animal makes a sound");
    }
}
class Dog extends Animal {
    Override
    void sound() {
        ("Dog barks");
    }
}
```
在这个例子中,当通过一个`Dog`对象调用`sound()`方法时,将会输出“Dog barks”。这是多态的体现。
3. 总结
在Java中,多态性主要体现在方法的重载和重写上。当我们通过一个对象调用一个方法时,JVM会根据对象的实际类型来决定调用哪个方法。这就是多态性的基本概念。