接口指定方法

时间:2012-10-11 17:32:25

标签: java methods interface

编写名为Nameable的接口,指定以下方法:

public void setName(String n)
public String getName()

这就是我得到的:

 public interface Nameable{     
     public void setName(String n){         
                n =name;     }    
        public String getName() {
                  return n;    } }

这是正确的还是有更好的方法呢?

4 个答案:

答案 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