使用相同方法实现两个接口的类?

时间:2013-08-29 12:59:52

标签: java methods interface abstract

/* 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();
   }

}

这里接口实现了这个类。基本上接口继承了两个或更多个类,但是这里两个不同的类在同一个方法中使用,然后这两个方法在一个类中实现。请检查错误的错误代码。

4 个答案:

答案 0 :(得分:3)

如果要创建接口继承,可以这样做:

public interface Birds extends Animal

现在,通过实施Birds,您将获得所有Bird方法和Animal方法。如果一个类实现AnimalBird,如果方法相同,一个特定的类定义了一个行为,那么实际上并不重要。

例如,如果Parrot实施travel作为动物或bird,那么在两种情况下都不应该吗?

答案 1 :(得分:3)

我猜你没有正确描述

您可能想写

public class MammalAni implements Animal,Birds{

现在你怀疑interfaces是否有同名方法eat()travel()。所以你很困惑,java如何执行它们。

如果在两个接口中有两个具有相同名称的方法,并且使用这两个接口实现了某个类,那么一个实现将同时用于接口..

答案 2 :(得分:1)

嗯,我不确定你想知道什么。但是如果你想知道,MammalAni类可以实现这两个接口。然后是的,但是为任何接口调用eat()或travel()将得到与MammalAni类中定义的相同的结果。我希望这会有所帮助。

答案 3 :(得分: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
}