-6
/* 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

4 回答 4

3

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

public interface Birds extends Animal

现在,通过实现,Birds您将拥有所有Bird' 方法以及这些Animal方法。实际上,一个类是否实现AnimalBird方法是否相同并不重要,一个特定的类定义一种行为。

例如,如果 a是作为动物或作为 a 的Parrot工具,它不应该在这两种情况下都飞行吗?travelbird

于 2013-08-29T13:06:38.317 回答
3

我猜你没有正确描述

你可能想写

public class MammalAni implements Animal,Birds{

现在你的疑问是两者interfaces都有相同的名称方法eat()travel()。所以你很困惑,java如何执行它们。

如果您在两个接口中有两个同名的方法,并且 Some Class 用这两个接口实现,那么一个实现同时作用于两个接口。

于 2013-08-29T13:09:55.537 回答
1

好吧,我不确定你想知道什么。但是,如果您想知道, MammalAni 类是否可以同时实现这两个接口。那么是的,但是为任何接口调用 eat() 或 travel() 将给出与 MammalAni 类中定义的结果相同的结果。我希望这有帮助。

于 2013-08-29T13:13:16.543 回答
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
}
于 2013-08-29T13:23:05.623 回答