2012-10-11 27 views
0

編寫一個名爲可命名一個接口,指定以下方法:接口指定方法

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

這是我得到:

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

這是正確的或者是有這樣做的更好的辦法? ?

回答

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

不,你不要在你的接口定義一個方法,你只申報。稍後實現該接口的類將提供該方法的實現。

這是正確的還是有更好的方式做到這一點?

更好的方法?是。複製此代碼並粘貼到您最喜歡的IDE中。它會告訴你你錯在哪裏,有這麼多的Red-Marks

IDE如Eclipse突然開始尖叫,如果你創建了這樣一個接口,你可以告訴它爲你糾正它。然後你可以看到魔法。

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

您的代碼會給你Abstract methods do not specify a body

所有接口的方法都默認abstract和抽象的方法沒有身體,看到這裏abstract

interface是一組相關的方法與空機構,但在你的代碼中的所有方法使機體不會編譯,見how interface work

更多關於wiki