为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我们需要在子类中创建方法来访问Java编程语言中超类中的方法。?

为什么我们需要在子类中创建方法来访问Java编程语言中超类中的方法。?

慕慕森 2021-06-29 09:03:00
我目前正在 Java 中学习 OOP。我遇到的一件事是,例如,我在 Vehicle SUPERCLASS 中有一个方法 speed,我想在 SUBCLASS Car 中访问该方法,我必须创建类似的方法;public void changespeed(){  super.speed();}以访问速度的方法。我的问题是,为什么我们需要附上这样的速度方法才能访问它?为什么我们不能简单地使用这种方法;super.speed();在子类中调用该速度方法。?
查看完整描述

1 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

你可以这样做:


speed();

由于非私有的超类方法都是由子类继承的,speed也存在于子类中。您可以通过this.speed()或 仅访问它speed()。


很明显,你必须把这个方法调用放在一个合适的地方。你不能像这样随机地把它放在一个类中:


class Car extends Vehicle {

    speed(); // can't do this!

}

您必须将方法调用放入另一个方法或构造函数中。这样编译器就知道何时调用该方法。


为什么方法调用必须在其他方法或构造函数中?


好吧,问问自己什么时候会调用上面代码片段中的方法调用。请记住,这speed是一个实例方法,因此Car需要一个实例来调用它。那个实例在哪里?将方法直接放在类中的整个概念毫无意义。


那么如果我想在加载类时调用一个方法呢?


您可以为此使用静态块:


static {

    // do stuff here

}

请注意,您仍然不能speed直接在静态块中调用,因为您需要Caror的实例Vehicle。


查看完整回答
反对 回复 2021-07-07
  • 1 回答
  • 0 关注
  • 135 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信