2013-08-29 236 views
-5
/* Class name : Fish.java */ 
interface Fish 
{ 
    public void eat(); 
    public void travel(); 
} 

/* Class name : Mammals.java */ 
interface Mammals 
{public void eat(); 
    public void travel();} 
/*Amphibians mean living two lives (on land as well as on water). */ 

/主類/使用相同方法實現兩個接口的類?

public class Amphibians implements Mammals,Fish 
{ 
    public void eat() 
    {   
    System.out.println("Amphibians eating"); 
    } 
     public void travel() 
    { 
     System.out.println("Amphibians traveling"); 
    } 

/*Main Method*/ 
    public static void main(String args[]) 
{ 
     Amphibians a = new Amphibians(); 
     a.eat(); 
     a.travel(); 
    } 

}

這裏接口實施本class.Basically接口繼承兩個或更多個類,但在這裏同樣的方法使用那麼這兩個方法都不同類在一個班級的方式實施。請檢查錯誤的正確代碼。

+2

我不明白你的問題... – BackSlash

+0

你想實現這兩個接口的類? – kiheru

+0

問題是什麼? –

回答

2

如果你想創建接口繼承,你可以做這樣的:

public interface Birds extends Animal 

現在,通過實施Birds你擁有所有的Bird的方法加上Animal的。實際上,如果一個類實現了AnimalBird,如果方法相同,則一個特定的類定義一個行爲應該不重要。

例如,如果說,一個Parrot工具travel動物或爲bird,應該不是飛在這兩種情況下

3

我猜你沒有說明正確

你可能想要寫

public class MammalAni implements Animal,Birds{ 

現在您的疑問既是interfaces具有相同的名稱方法eat()travel()。那麼你困惑,如何執行的Java他們。

如果你有兩種方法具有相同名稱的兩個接口,並與這兩個接口則是一個執行這個行爲的兩個接口來實現一些類..

1

嗯,我不確定你想知道什麼。但是如果你想知道,MammalAni類可以實現這兩個接口。然後是的,但是爲任何接口調用eat()或travel()會得到與MammalAni類中定義的結果相同的結果。我希望這有幫助。

0

接口方法必須由 實現它們的具體類實現。

現在假設有兩個接口,那麼這兩個接口都說具體類必須實現方法eat()

現在在你的情況下,interface都表示具體的類必須實現方法eat()travel()。所以當你實現這兩個接口時,你只需要一個單個實現

建議:

public interface CanEat{ 
    public void eat(); 
} 

public interface CanTravel{ 
    public void travel(); 
} 

public interface Animal extends CanEat,CanTravel{ 
    //only methods specific for animal will be here 
} 

public interface Birds extends CanEat,CanTravel{ 
    //only methods specific to birds will be here like flying 
} 

So that tomorrow if you create a robotic Animal 
public interface RoboticAnimal extends CanTravel{ 
    //no need for using CanEat interface as robot does not eat 
} 
相關問題