【发布时间】:2011-02-20 12:38:17
【问题描述】:
如果我有两个类 x 和 y,都扩展类 w。和 x 实现接口 z。如果我有方法 doSomething(w object) 和 doSomething(x object),如果我调用 doSomething(x) 会发生什么?
编辑: 我在java上实现这个,更具体地说是在android上。 我问这个是因为一些实现特定接口的类在调用 doSomething() 时大多做同样的事情。但有一些特殊情况我想单独指出。
【问题讨论】:
-
你能说得更具体点吗?你是指钻石问题还是别的什么?
-
这可能取决于所讨论的编程语言,但通常编译器会选择具有最佳拟合参数类型的方法,在这种情况下采用
x object。 -
你为什么不试试呢?没有什么不好的事情会发生在你身上。 :)
-
+1:这是一个很好的问题,我想说这取决于语言。 // 鉴于我不知道您指的是哪种语言,您为什么不在您选择的语言中尝试这个场景,并尝试调用 w 和 x 独有的方法?