gpt4 book ai didi

java - 无法在子类中创建返回类型为 Object 的方法

转载 作者:搜寻专家 更新时间:2023-11-01 02:40:04 24 4
gpt4 key购买 nike

我是一名 Java 初学者,在学习过程中遇到了这个程序。

一级是 super 类(class)。二类扩展一类,三类扩展二类。

class One {
public One foo() {
return this;
}
}
class Two extends One {
public One foo() {
return this;
}
}
class Three extends Two {
public Two foo() {
return this;
}
}

在类三中,当我创建返回类型二的方法 foo 时,没有编译错误,但是当我将返回类型设置为“对象”时,如下所示,出现编译错误。

class Three extends Two {
public Object foo() {
return this;
}
}

据我目前所学,Object 是所有类的父类(super class)。为什么不能在子类中创建返回类型为“Object”的方法?

最佳答案

它失败了,因为返回的类应该是 One 或其子类(例如 Two),它保证也是 One >;不是它的父类(super class)(例如 Object),据编译器所知,它可以是 One 以外的任何东西。

class Three extends Two {
public Two foo() { // works because Two is a subclass of One
return this;
}
}

但是

class Three extends Two {
public Object foo() { // fails because Object is not a subclass of One
return this;
}
}

关于java - 无法在子类中创建返回类型为 Object 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35718421/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com