Java 父类调子类的方法
时间: 2023-08-02 18:10:53 浏览: 91
在 Java 中,父类可以通过子类的实例对象来调用子类重写的方法。假设有一个父类 Parent 和一个子类 Child,Child 重写了 Parent 中的某个方法,那么可以通过以下方式调用子类的方法:
```
Parent obj = new Child(); // 创建子类对象并将其赋值给父类引用
obj.method(); // 调用子类的方法
```
这里需要注意的是,只有在子类重写了父类方法的情况下,才会调用子类的方法。如果子类没有重写父类方法,那么调用的仍然是父类的方法。
相关问题
子类转为父类后调子类的私有方法
在面向对象编程中,子类是不能访问父类的私有方法的。私有方法是被封装起来的,只能在该类内部访问。因此,如果将子类转换为父类后,再调用子类的私有方法是无法实现的。如果确实需要访问该方法,可以考虑将该方法设置为受保护的(protected),这样子类就可以访问该方法了。不过,需要注意的是,这样做会破坏封装性,因此需要谨慎使用。
父类生成子类的事例可以调子类的方法吗
如果是通过父类生成子类的实例对象,那么可以调用子类中定义的方法,但是不能调用子类重写的父类方法。假设有一个父类 Parent 和一个子类 Child,Child 重写了 Parent 中的某个方法,那么可以通过以下方式生成子类的实例对象并调用子类的方法:
```
Parent obj = new Child(); // 创建子类对象并将其赋值给父类引用
obj.method(); // 调用子类的方法
```
在这个例子中,即使子类重写了父类的方法,也会调用子类的方法而不是父类的方法。但是,如果想要调用子类重写的父类方法,需要先将子类对象转换为子类类型,然后再调用方法。例如:
```
Parent obj = new Child(); // 创建子类对象并将其赋值给父类引用
((Child) obj).parentMethod(); // 调用子类重写的父类方法
```
需要注意的是,如果父类生成的实例对象是父类类型,而非子类类型,那么无法调用子类中定义的方法。
阅读全文