考虑实现具有A
方法B
的接口static
的类info()
。为什么不能A.info()
?如果它是一个默认方法,那么可能会A.info()
,我不明白为什么会有区别:它们是两种不是abstract
但已在interface
,差异应该只是一个是static
而另一个不是。
答案 0 :(得分:0)
请记住:静态方法没有多态性。
所以,当你有两个类 A和B时 - 是的,那么你可以调用A.info()。但这是一种沮丧的做法 - 因为你仍在从B调用静态方法。
因此猜测:Java语言背后的人只是想阻止人们开始滥用接口中的静态方法。
答案 1 :(得分:0)
存在差异,因为您可以实现多个接口。如果你有一个接口C,它也有一个静态方法info()
并且你在A类中实现了B和C,那会怎么样呢?这就会产生一个问题,这就是为什么它不被允许的原因。
但是当你有两个A和B类时,那么它是可能的,因为你只能扩展一个类。