Java 不支持多重继承,因为如果两个类具有相同的函数名但不同的实现,并且如果第三个类继承了这两个类并且如果它想使用该方法,那么它将在应该调用哪个方法上造成混乱。所以java使用了多个接口的概念。但我怀疑两个多个接口是否也具有相同的函数名称但不同的实现,如果第三个类实现这两个接口,并且当它为该方法提供实现时,这不是问题,请解释一下?
问问题
509 次
5 回答
4
Java接口只定义了方法名,没有实现。方法的实现在实现接口的类中完成。这样就避免了这个问题。
于 2012-12-08T12:47:30.923 回答
2
如果两个接口提供了具有相同签名的方法,而这些方法应该做两件不同的事情,那么您确实会遇到一些问题。毕竟,接口不仅指定了方法签名,而且还指定了如何实现它们的协定(尽管编译器无法强制执行)。然后你不能真正扩展这两个接口,因为你的实现只能提供一种方法(所以它必须选择两个合同之一来履行)。但当然,这对运行时系统来说不是问题,更多的是你的界面设计。
于 2012-12-08T12:53:55.703 回答
2
当两个方法具有相同的参数但返回类型不同时,两个接口之间会发生冲突。
例子:
public class MultipleInterfaceClash {
public interface Foo {
String baz(int a, String x);
}
public interface Bar {
Double baz(int a, String x);
}
public class Confused implements Foo, Bar {
// Compile error: The return type is incompatible with
// MultipleInterfaceClash.Foo.baz(int, String)
public Double baz(int a, String x) {
return null;
}
}
}
不可能同时实现这两个接口。
于 2012-12-08T14:01:06.510 回答
0
接口没有实现。
只有方法定义
公共接口 a{ void a(); }
于 2012-12-08T12:51:45.850 回答
0
接口只是为用户提供了一个契约,在这种情况下是方法签名。实现类必须遵循这个契约。因此,如果两个或多个接口指定相同的合同,那么实现类没有任何问题,因为实现将服务于目的。
接口没有任何默认实现。仅指定方法签名。
于 2012-12-08T12:52:49.720 回答