【发布时间】:2017-04-13 14:37:58
【问题描述】:
我有一个实现两个接口的对象(特别是Serializable 和java.security.Key 接口)。这个对象的类也有两个静态方法:一个接受Serializable 对象,另一个接受Key 对象。下面是一些示例代码:
public class Subclass implements Serializable, java.security.Key{
public static void test(Serializable s) {
System.out.println("Ser");
}
public static void test(java.security.Key k) {
System.out.println("Key");
}
public static void main(String[]args){
test(new Subclass());
}
}
现在当我运行上面的 main 方法时,没有抛出任何错误,Java 调用了 test(Key) 方法。但是,当我将Serializable 接口更改为其他内容(我将test(Serializable) 中的参数更改并更改Subclass 的超级接口)为其他内容时,我的IDE 显示错误:
test(Key)的方法对于SubClass类型不明确。
我想知道的是,为什么 Java 允许这种带有 Serializable 接口而没有其他方法的歧义?
【问题讨论】:
-
您使用的其他类型是什么?这些别的东西的