Java3、利用多态实现编程。(使用方法重写和上转型对象,这个上转型对象就可以调用子类 重写的方法。)
时间: 2023-05-30 18:02:44 浏览: 166
多态是面向对象编程中的一个重要概念,它是指同一种类型的对象在不同情况下所具有的多种状态。在Java中,多态可以通过方法重写和上转型对象来实现。
方法重写是指子类重写父类的方法,使得子类对象在调用该方法时执行子类的实现。这里需要注意的是,子类重写的方法必须与父类方法具有相同的方法名、参数列表和返回类型。例如,假设有一个Animal类和一个Dog类,Dog类继承自Animal类并重写了Animal类的eat方法:
```
public class Animal {
public void eat() {
System.out.println("Animal is eating.");
}
}
public class Dog extends Animal {
@Override
public void eat() {
System.out.println("Dog is eating.");
}
}
```
在上面的代码中,Dog类重写了Animal类的eat方法,使得Dog对象在调用eat方法时执行Dog类的实现。例如:
```
Animal animal = new Dog();
animal.eat(); // 输出:Dog is eating.
```
这里需要注意的是,animal是一个Animal类型的变量,但它所引用的对象是一个Dog对象。这就是上转型对象的概念,即将一个子类对象赋值给一个父类类型的变量,这个父类类型的变量就可以调用子类重写的方法。
上转型对象可以方便地实现多态,因为它可以在不知道具体对象类型的情况下调用子类重写的方法。例如,假设有一个Animal数组,其中包含了不同类型的Animal对象:
```
Animal[] animals = new Animal[2];
animals[0] = new Animal();
animals[1] = new Dog();
```
我们可以使用一个循环来遍历这个数组,并调用每个Animal对象的eat方法:
```
for (Animal animal : animals) {
animal.eat();
}
```
在这个循环中,animal是一个Animal类型的变量,但它所引用的对象可以是Animal或者Dog对象。因此,在调用eat方法时,会根据具体对象的类型执行不同的实现。例如,对于animals[0]这个Animal对象,会执行Animal类的eat方法;而对于animals[1]这个Dog对象,会执行Dog类重写的eat方法。这就是多态的体现。
阅读全文