【发布时间】:2013-04-04 20:10:42
【问题描述】:
在一次讨论中,我的一位朋友告诉我concrete methods would be allowed in java 1.8 in interfaces,然后我想到了一个问题,即如果他们被允许,那么我们将如何区分这些方法。例如
我有两个接口Animal.java 和Pet.java 并且都有相同的具体方法,即eat()
public interfaces Animal{
void eat(){
System.out.println("Animal Start eating ....");
}
}
public interfaces Pet{
void eat(){
System.out.println("Pet Start eating ....");
}
}
现在我的Zoo.java 实现了这两个并且没有覆盖
public class Zoo() implements Pet , Animal{
//Now name method is a part of this class
}
现在这是我的困惑。如何使用 Test 对象在接口 animal 上调用特定方法
public class Demo{
public static void main(String[] args){
Zoo zoo = new Zoo();
zoo.eat(); //What would be the output
}
}
有什么建议吗?或者在 java1.8 中是否有任何解决方案,因为我无法找到它的答案。
【问题讨论】:
-
但我没有在这些问题中找到这个答案。如果它是重复的,那么请指导我解决这个问题
-
这可能也是最重要的,接口中的静态非继承方法stackoverflow.com/q/14646027/106261
-
你的原始问题在这里得到了回答stackoverflow.com/a/7857884/106261
-
@NimChimpsky 可能是我的错,但我仍然无法找到(1)
zoo.eat();的输出和(2)如何调用接口特定方法?跨度> -
@freak yoru 语法错误顺便说一句,我会用 jdk 8 试试,给我 5 分钟