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

我目前正在 Java 中学习 OOP。我遇到的一件事是,例如,我在 Vehicle SUPERCLASS 中有一个方法 speed,我想在 SUBCLASS Car 中访问该方法,我必须创建类似的方法;


public void changespeed()

{

  super.speed();

}

以访问速度的方法。我的问题是,为什么我们需要附上这样的速度方法才能访问它?为什么我们不能简单地使用这种方法;


super.speed();

在子类中调用该速度方法。?


慕慕森
浏览 137回答 1
1回答

紫衣仙女

你可以这样做:speed();由于非私有的超类方法都是由子类继承的,speed也存在于子类中。您可以通过this.speed()或 仅访问它speed()。很明显,你必须把这个方法调用放在一个合适的地方。你不能像这样随机地把它放在一个类中:class Car extends Vehicle {    speed(); // can't do this!}您必须将方法调用放入另一个方法或构造函数中。这样编译器就知道何时调用该方法。为什么方法调用必须在其他方法或构造函数中?好吧,问问自己什么时候会调用上面代码片段中的方法调用。请记住,这speed是一个实例方法,因此Car需要一个实例来调用它。那个实例在哪里?将方法直接放在类中的整个概念毫无意义。那么如果我想在加载类时调用一个方法呢?您可以为此使用静态块:static {    // do stuff here}请注意,您仍然不能speed直接在静态块中调用,因为您需要Caror的实例Vehicle。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java