Java Lambda不会从单独的文件重写接口方法 当函数接口位于lambda覆盖它的同一个文件中时,它可以正常编译 当函数接口位于单独的文件中且基类实现它时,它无法使用Base is not abstract编译,并且不会覆盖Interface3error中的抽象方法multiplyFour(int) 有什么不对劲吗?为什么lambda在第二种情况下不重写该方法

Java Lambda不会从单独的文件重写接口方法 当函数接口位于lambda覆盖它的同一个文件中时,它可以正常编译 当函数接口位于单独的文件中且基类实现它时,它无法使用Base is not abstract编译,并且不会覆盖Interface3error中的抽象方法multiplyFour(int) 有什么不对劲吗?为什么lambda在第二种情况下不重写该方法,java,lambda,interface,Java,Lambda,Interface,你的第一个例子是: public class Base { public class Base implements Interface3 { 它不实现接口1 但是,您的第二个示例有: public class Base { public class Base implements Interface3 { 哪个实现了Interface3 不确定您在这里试图做什么,但这是预期行为: 接口 当类实现接口时,必须将所有方法实现到类中 例如: public interface IFoo {

你的第一个例子是:

public class Base {
public class Base implements Interface3 {
它不实现
接口1

但是,您的第二个示例有:

public class Base {
public class Base implements Interface3 {
哪个实现了
Interface3

不确定您在这里试图做什么,但这是预期行为:

接口 当类实现
接口时,必须将所有方法实现到类中

例如:

public interface IFoo {
    void bar();
}
和类别:

public class FooImpl implements IFoo {
    // must implement bar method in IFoo
    public void bar() {
        System.out.println("I did something");
    }

}
在主方法中使用lambda并不构成实现接口方法

修理
只需删除
实现接口3
,您不需要在类中实现接口就可以使用它。

您的第一个示例包括:

public class Base {
public class Base implements Interface3 {
它不实现
接口1

但是,您的第二个示例有:

public class Base {
public class Base implements Interface3 {
哪个实现了
Interface3

不确定您在这里试图做什么,但这是预期行为:

接口 当类实现
接口时,必须将所有方法实现到类中

例如:

public interface IFoo {
    void bar();
}
和类别:

public class FooImpl implements IFoo {
    // must implement bar method in IFoo
    public void bar() {
        System.out.println("I did something");
    }

}
在主方法中使用lambda并不构成实现接口方法

修理
只需删除
实现接口3
,你不需要在类中实现接口就可以使用它。

你不需要实现它就可以使用类
Base
不需要实现该类中lambda匹配的接口。你不需要实现它就可以使用类
Base
不需要实现该类中lambda匹配的接口班级比赛。