这个Java接口代码有什么问题?
这是我第一次Java测试中的一个问题,我被困在这个问题上了这个Java接口代码有什么问题?,java,interface,Java,Interface,这是我第一次Java测试中的一个问题,我被困在这个问题上了 这个代码有什么问题 如何修复它 此代码是否错误,因为接口不能包含任何方法或打印输出方法 测验的第二部分是 假设对前一代码进行了更正,则以下代码是否有效 public interface SomethingWrong { public void aMethod(int value) { System.out.print("Hi"); } } 第一项问题: 答:接口中的方法不能有方法体 第二个问题:如何解
public interface SomethingWrong {
public void aMethod(int value) {
System.out.print("Hi");
}
}
第一项问题:
答:接口中的方法不能有方法体
第二个问题:如何解决
答复:
public interface SomethingWrong {
public void aMethod(int value) {
System.out.print("Hi");
}
}
只需删除方法体并实现它,这样就可以覆盖aMethod(int值)代码>
附加1:
附加2:
假设您有两个接口,您可以实现一个类(具体或抽象)的多个接口,并且您永远无法实现另一个接口的接口,但您可以将多个接口扩展到另一个接口
补充3:
您无法创建接口或抽象类的新实例,因此这意味着您无法执行以下操作:
public class MainClass implements SomethingWrong{
//Here since you implement the interface you are now required to override it in this class.
// You can do it by adding a method body.
public void aMethod(int value){
System.out.print("Hello World");
}
}
因为接口没有构造函数。如果我错了,请更正:)添加default
关键字,它将与Java 8编译器一起工作:
SomethingWrong some = new SomethingWrong();
你有什么错误?顺便说一句,您不能在类外声明变量var
。如果您有Java 8,您可以向方法aMethod
添加default
修饰符,这将是有效的。除此之外,还取决于Java版本。@Richard,根据答案,了解您考虑的是哪个JDK会很有帮助。这是学校测验还是什么?如果是这样,我高度怀疑是JDK 8,我认为有什么不对的var=new Foo();是正确的,我们正在Foo上创建一个引用了某些错误的实例是正确的,我最近在spring中使用过:)您可以使用接口引用类
public class MainClass implements SomethingWrong{
//Here since you implement the interface you are now required to override it in this class.
// You can do it by adding a method body.
public void aMethod(int value){
System.out.print("Hello World");
}
}
SomethingWrong some = new SomethingWrong();
public interface SomethingWrong {
default public void aMethod(int value) {
System.out.print("Hi");
}
}