编写名为Nameable的接口,指定以下方法:
public void setName(String n)
public String getName()
这就是我得到的:
public interface Nameable{
public void setName(String n){
n =name; }
public String getName() {
return n; } }
这是正确的还是有更好的方法呢?
答案 0 :(得分:6)
界面没有指定实现,所以不,这不是正确的。
您必须将可用方法(接口)和实现(类)的定义分开:
public interface Nameable{
public void setName(String n);
public String getName();
}
public class Named implements Nameable {
private String name;
public void setName(String n){
this.name = n;
}
public String getName() {
return this.name;
}
}
答案 1 :(得分:2)
不,您没有在界面中定义方法,只能声明它们。稍后实现该接口的类提供了该方法的实现。
这是正确的还是有更好的方法呢?
更好的方法?是。复制此代码并粘贴到您喜欢的IDE中。它会告诉你你错在哪里,有这么多Red-Marks
。
IDE Eclipse
突然开始尖叫,您可以告诉它为您纠正它。然后你就可以看到神奇了。
答案 2 :(得分:0)
您必须记住,接口仅提供方法声明,并且不提供实现。这取决于实施的课程。
public interface Nameable
{
public void setName(String n);
public String getName();
}
public class NameableImplmentation implments Nameable
{
public void setName(String n)
{
//insert code
}
public String getName()
{
//insert code
}
}
答案 3 :(得分:0)
您的代码会为您提供Abstract methods do not specify a body
。
接口的所有方法默认为abstract
,而抽象方法没有正文,请参阅此处abstract
interface
是一组带有空体的相关方法,但在您的代码中所有具有主体的方法都无法编译,请参阅how interface work
更多关于wiki