package test.test;
public class Base {
public static void main(String[] args) {
Interface1 a = n -> System.out.println(2*n);
}
}
interface Interface1 {
void multiplyByTwo(int x);
}
Base is not abstract and does not override abstract method multiplyByFour(int) in Interface3
错误。package test.test;
public class Base implements Interface3 {
public static void main(String[] args) {
Interface3 b = n -> System.out.println(4*n);
}
}
package test.test;
public interface Interface3 {
void multiplyByFour(int x);
}
答案 0 :(得分:2)
您的第一个示例具有:
Interface1
未实现public class Base implements Interface3 {
但是,您的第二个示例具有:
Interface3
哪个实现了interface
不确定您要在这里做什么,但这是预期的行为:
当类实现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");
}
}
和班级:
implements Interface3
在main方法中具有lambda并不构成实现接口方法。
只需删除Invoke-Command
,就不需要在类中实现该接口即可使用它。