当前位置: 首页 > 知识库问答 >
问题:

子类中的方法可以重载超类中的方法吗?

公羊宗清
2023-03-14

Java代码:

class P {
    public void hello() {}
}

class C extends P {
    public void hello(String s) {}
}

我的问题是:类c中的hellow是否重载了超类p中同名的hellow

我的朋友说他们不是因为他们不在一个班。

共有1个答案

缪风史
2023-03-14

采用更正式的方法,《Java Java语言规范》7规定:

如果一个类的两个方法(无论是在同一个类中声明的,还是由一个类继承的,或者一个声明的和一个继承的)具有相同的名称,但签名不是重写等价的,则称该方法名已重载。

http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.4.9

我会把你的朋友指向这个链接。

因此,简而言之,在您的示例中,hello方法确实被重载了。

 类似资料:
  • 我理解在同一个类中重载一个方法是比较简单的。参数列表、返回类型、访问修饰符等都可以更改,以便将其视为重载。 但是,对于继承,我不确定下面的示例是建议类B重载类a的方法,还是只在其类中创建一个与它完全无关的方法。

  • 问题内容: 我正在Google App Engine中制作一个购物车应用。我有许多从基本处理程序派生的类: 这是否意味着每个后代类的方法都需要具有相同的参数?这很麻烦。实际上只有一个后代使用该参数。而当我添加新的参数时呢?我需要遍历每堂课吗? 问题答案: 重写的方法原则上不必彼此具有相同的参数,但是它们必须具有与调用它们相同的形式参数。因此,由于任何处理程序都可以通过调用它,是的,它们必须相同。就

  • 问题内容: 假设我有一个Point带有x和y参数的不可变类,以及一个add定义如下的方法: 由于它是不可变的,因此它返回一个新的Point。这一切都很好,直到我们有了一个扩展Point并重新定义的类add。 我们必须编写新的定义,因为否则将返回addon的方法,这是不好的。但是现在,这在大多数语言中都行不通,因为我们正在压倒一切,但我们只是在对返回类型进行歧义处理。语言不允许您只对返回类型进行歧义

  • 我有一个基类,它定义了类方法,用于返回用于构建服务url的各种信息。基类还定义了一个用于构建该url的实例方法。我希望基类有这个方法的默认实现,这样当我需要url不同时,我只需要在子类中重写它。我如何让这个基方法调用重写的类方法来使用子类中的类方法构建url?下面是我现在的代码,但它不起作用: 基类方法: op ationId、operationVersion和方法类型是在子类中实现的类方法,但是

  • 我有一个 但当我这么做的时候, 我该怎么解决这个问题?游戏是超级超级类...

  • 我对Java/Android中的继承/接口有点困惑,不确定我是否走上了正确的道路。基本上,我在Android系统中使用Parcelable,由于方法未定义,所以会出现错误。 我有一个动物超类和几个子类(狗、猫等)。在第一个活动中,您选择一只动物,然后它将其打包并传递给第二个活动: 问题是“updateImage”只存在于子类中,因此它不会在这里编译。我不希望这个方法出现在超类中,因为输出根据动物的