继承和多态性如何与静态方法一起工作?有人可以解释什么是适当的输出应该在这里以及它是如何派生的?静态方法的继承和多态性
class A { public static int get() { return 17; } }
class B extends A { public static int get() { return 42; } }
Main
A x = new B();
x.get();
错误消息,
静态get()方法从A型应以静态方式
我想我知道如何访问到它访问静态的方式,但是这是从课堂上提问和其排序意味着一个或另一个值将返回
在我们的计划,我们的类定义:
class A { public static int get() { return 17; } }
class B extends A { public static int get() { return 42; } }
和其他地方,我们声明A x = new B();
什么号码将呼叫x.get()
回来吗?
尝试运行它。 –
作为Sotirios指出,'A x = new B();'将返回17在'x.get();''B y = new B();'将在'y.get();'返回42; – Matthew
你可以得到一些特殊的软件,它会告诉你任何Java程序的输出。它非常适合解决这样的问题。你只需要给你的程序,你就可以找出程序的输出结果。我严肃地建议使用这种软件来解决这类问题 - 这将为您节省大量时间。你可以为自己找到答案,而不必信任你从未见过的人。如果你想知道这个惊人的软件叫做什么......它是“Java”。尝试一下。 –