【问题标题】:Interface specifies methods接口指定方法
【发布时间】:2012-10-11 17:32:24
【问题描述】:

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

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

这是我得到的:

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

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

【问题讨论】:

    标签: java methods interface


    【解决方案1】:

    接口没有指定实现,所以不,这是不正确的。

    您必须将可用方法(接口)和实现(类)的定义分开:

    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;
        }
    }
    

    【讨论】:

      【解决方案2】:

      不,您没有在接口中定义方法,您只需声明它们。稍后实现该接口的类提供该方法的实现。

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

      更好的方法?是的。复制此代码并粘贴到您最喜欢的 IDE 中。它会告诉你哪里错了,有这么多Red-Marks

      Eclipse 这样的IDE 如果你创建了这样一个界面就会突然开始尖叫,你可以告诉它为你更正它。然后你就可以看到魔法了。

      【讨论】:

        【解决方案3】:

        您必须记住,接口只提供方法声明,不提供实现。这取决于实现的类。

        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
             } 
        }
        

        【讨论】:

          【解决方案4】:

          您的代码将为您提供Abstract methods do not specify a body

          接口的所有方法默认都是abstract,抽象方法没有body,看这里abstract

          interface 是一组具有空主体的相关方法,但在您的代码中,所有具有主体的方法都无法编译,请参阅how interface work

          更多关于wiki

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-05-16
            • 1970-01-01
            • 2012-06-05
            • 1970-01-01
            • 1970-01-01
            • 2010-11-03
            • 2021-08-05
            相关资源
            最近更新 更多