Java多态
时间: 2023-07-19 18:10:47 浏览: 73
Java的多态性是基于继承和接口实现的,它允许不同的子类对象以自己的方式实现同一个方法,在程序运行时根据对象的实际类型来调用相应的方法。
Java中实现多态性有两种方式:方法重载和方法重写。
方法重载是指在同一个类中定义多个同名的方法,但它们的参数列表不同。Java编译器会根据方法的参数列表来选择调用哪个方法。方法重载可以看作是编译时的多态性。
方法重写是指在子类中重新定义一个与父类中同名、同参数列表的方法。当父类和子类都有同名的方法时,通过父类的引用变量调用该方法时,实际上会调用子类中的方法。这种多态性也被称为运行时多态性。
在Java中实现多态性的关键是使用父类或接口类型的引用变量来引用子类对象。例如:
```java
public class Animal {
public void move() {
System.out.println("动物可以移动");
}
}
public class Dog extends Animal {
public void move() {
System.out.println("狗可以跑和走");
}
}
public class Test {
public static void main(String[] args) {
Animal animal = new Animal();
Dog dog = new Dog();
animal.move();
dog.move();
animal = new Dog();
animal.move();
}
}
```
输出结果为:
```
动物可以移动
狗可以跑和走
狗可以跑和走
```
在这个例子中,Animal 是一个父类,Dog 是一个子类,它们都有一个名为 move() 的方法。通过父类 Animal 的引用变量 animal 和子类 Dog 的引用变量 dog,分别调用它们的 move() 方法,得到不同的输出结果。在最后一个调用中,父类引用变量 animal 引用了子类对象,实际上调用的是子类 Dog 的 move() 方法,这就是多态性的体现。
阅读全文