【发布时间】:2019-06-25 05:51:36
【问题描述】:
我有一个 interface(A) 包含方法 myMethod() 和一个 class(B) 也包含相同的方法 myMethod() 和另一个 class(c) 扩展并实现 A 和 B。
不,我创建了A a = new C() 类的对象并调用了a.myMethod();。
它是如何执行 B 类的 myMethod 的。
interface A {
void myMethod();
}
class B {
public void myMethod() {
System.out.println("My Method");
}
}
class C extends B implements A {
}
class MainClass {
public static void main(String[] args) {
A a = new C();
a.myMethod();
}
}
程序的输出 -
My Method
【问题讨论】:
-
为什么这会让您感到惊讶?你期望结果是什么?
-
@BoristheSpider 我只是想知道它背后的概念。我不太了解 OOP 的概念。
-
您需要
class有一个与interface中的签名匹配的方法,然后您指示同一个类应该从提供这种方法的class继承。我不确定你的问题是什么。我可以建议阅读有关继承基础知识的tutorial 吗? -
这样想,方法
myMethod也在C中,因为C继承了B。 -
这不是一个坏问题,我认为这在 C# 中的处理方式不同。 stackoverflow.com/q/2371178/14955
标签: java inheritance interface