Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java1.8接口中的具体方法_Java_Interface - Fatal编程技术网

Java1.8接口中的具体方法

Java1.8接口中的具体方法,java,interface,Java,Interface,在一次讨论中,我的一位朋友告诉我,java 1.8允许在接口中使用具体方法,当时我想到了一个问题,即如果允许,我们将如何区分这些方法。例如 我有两个接口Animal.java和Pet.java,它们都有相同的具体方法I-eeat() public interfaces Animal{ void eat(){ System.out.println("Animal Start eating ...."); } }

在一次讨论中,我的一位朋友告诉我,java 1.8允许在接口中使用
具体方法
,当时我想到了一个问题,即如果允许,我们将如何区分这些方法。例如
我有两个接口
Animal.java
Pet.java
,它们都有相同的具体方法I-e
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
object

public class Demo{
        public static void main(String[] args){

                 Zoo zoo = new Zoo();
                 zoo.eat();    //What would be the output
        }
 }

有什么建议吗?或者在java1.8中有什么解决方案,因为我找不到它的答案。

除非在Zoo类中重写eat,否则会出现编译时错误

java: class defaultMethods.Zoo inherits unrelated defaults for eat() from types Pet and Animal
最新和最新的jdk是。语法应该是

default void eat(){
  System.out.println("Animal Start eating ....");
}

但是我没有在这些问题中找到答案。如果是重复的,那么请指导我解决这个问题。这可能也是最新的,接口中的静态非继承方法您最初的问题在这里得到了回答@nimchinpsky可能是我的错,但我仍然无法找到(1)zoo.eat()的输出是什么和(2)如何调用接口特定的方法?@freak yoru语法错误,顺便说一句,我将使用jdk 8进行尝试,给我5分钟的时间:)所以在这种情况下,两种方法(来自动物和宠物)都会得到更新?对吗?不更新,覆盖最后一件事,这意味着如果我们有同名的默认具体方法,那么我们应该覆盖默认方法?否则就是编译时错误?对吗?