public interface SomethingWrong {
public void aMethod(int value) {
System.out.print("Hi");
}
}
这是我第一次Java测验中的一个问题,我很擅长这个问题。
此代码是否有误,因为界面不能包含任何方法或打印输出方法。
测验的第二部分是这个
以下代码是否有效假设对前一代码进行了更正
public class Foo implements SomethingWrong {
}
SomethingWrong var = new Foo();
答案 0 :(得分:-1)
//Interface
public interface SomethingWrong {
public void aMethod(int value)
}
//Implementation
public class SomeThingRight implements SomethingWrong{
@override
public void aMethod(int value)
{
System.out.println("hi"):
}
}
接口没有方法定义。因为它们是100%抽象的。所以你的代码不应该包含实现
答案 1 :(得分:-1)
public interface SomethingWrong {
public void aMethod(int value) {
System.out.print("Hi");
}
}
答:界面中的方法不能有方法体。
答案:
public interface SomethingWrong{
public void aMethod(int value);
}
只需删除方法正文并实现它,以便覆盖aMethod(int value);
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();
因为接口没有构造函数。如果我错了,请纠正我:))
答案 2 :(得分:-1)
添加default
关键字,它将与Java 8编译器配合使用:
public interface SomethingWrong {
default public void aMethod(int value) {
System.out.print("Hi");
}
}