java 中多态的使用
时间: 2023-08-27 11:05:43 浏览: 179
在 Java 中,多态性是指同一个方法调用会根据对象类型的不同而具有不同的行为。多态性主要有两种表现形式:覆盖和重载。
覆盖(Override)是指在子类中定义一个与父类中同名、同参数列表的方法,这个子类的方法会覆盖父类的方法。当父类引用指向子类对象时,调用该方法时会优先调用子类的方法。
重载(Overload)是指在一个类中定义多个方法,它们具有相同的方法名但参数列表不同。编译器会根据参数列表的不同来选择相应的方法。
下面是一个使用多态的例子:
```
class Animal {
public void makeSound() {
System.out.println("The animal makes a sound");
}
}
class Dog extends Animal {
public void makeSound() {
System.out.println("The dog barks");
}
}
class Cat extends Animal {
public void makeSound() {
System.out.println("The cat meows");
}
}
public class Main {
public static void main(String[] args) {
Animal a = new Animal(); // Animal reference and object
Animal b = new Dog(); // Animal reference but Dog object
Animal c = new Cat(); // Animal reference but Cat object
a.makeSound(); // runs the method in Animal class
b.makeSound(); // runs the method in Dog class
c.makeSound(); // runs the method in Cat class
}
}
```
输出结果为:
```
The animal makes a sound
The dog barks
The cat meows
```
在这个例子中,Animal 是一个父类,Dog 和 Cat 是它的子类。Animal 类中的 makeSound() 方法被子类重写了,当父类引用指向子类对象时,调用该方法时会优先调用子类的方法。
阅读全文