JAVA 父类接受子类对象,可以调用子类有而父类中没有的对象吗?
时间: 2023-10-02 21:13:06 浏览: 159
Java中父类怎么调用子类的方法
当父类接收子类对象时,只能调用在父类中定义的方法和属性。如果子类中有而父类中没有的方法和属性,父类是无法直接调用的。
但是,可以通过将父类类型的变量强制类型转换为子类类型,从而调用子类中特有的方法和属性。例如:
```
Animal animal = new Dog();
if (animal instanceof Dog) {
Dog dog = (Dog) animal;
dog.bark(); // 调用子类Dog中的bark方法
}
```
这里首先将 Animal 类型的 animal 变量强制转换为 Dog 类型,然后就可以调用 Dog 中特有的方法 bark() 了。但是需要注意的是,如果 animal 引用的对象实际不是 Dog 类型的对象,那么强制转换会导致运行时异常。因此,在进行强制类型转换时,需要使用 instanceof 运算符进行类型检查,以确保安全转换。
阅读全文