那子类对象强转为父类对象的例子
时间: 2023-07-25 10:28:44 浏览: 98
在Java中,子类对象可以强制转换为父类对象。这通常发生在需要将一个子类对象传递给一个接受父类对象参数的方法时,或者需要将一个子类对象存储在一个父类对象数组中时。下面是一个例子:
```java
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");
}
public void bark() {
System.out.println("Dog is barking");
}
}
public class Main {
public static void main(String[] args) {
Dog dog = new Dog();
Animal animal = (Animal) dog; // 将Dog对象强制转换为Animal对象
animal.eat(); // 输出 "Dog is eating"
}
}
```
在这个例子中,我们创建了一个Dog类型的对象dog,并将它强制转换为Animal类型的变量animal。由于Dog是Animal的子类,因此可以将Dog类型的对象赋值给Animal类型的变量。此时,我们可以调用Animal类中的方法,也可以调用Dog类中的方法,但我们只调用了继承自Animal类的eat方法。
需要注意的是,如果我们尝试将一个父类对象强制转换为子类对象,则可能会引发ClassCastException异常。这是因为,父类对象在内存中所占用的空间比子类对象小,无法存储子类对象中新增的成员变量和方法。因此,将一个父类对象强制转换为子类对象时,需要确保父类对象实际上是子类对象。
阅读全文