/* 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();
}
}
这里接口实现了这个类。基本上接口继承了两个或更多个类,但是这里两个不同的类在同一个方法中使用,然后这两个方法在一个类中实现。请检查错误的错误代码。
答案 0 :(得分:3)
如果要创建接口继承,可以这样做:
public interface Birds extends Animal
现在,通过实施Birds
,您将获得所有Bird
方法和Animal
方法。如果一个类实现Animal
或Bird
,如果方法相同,一个特定的类定义了一个行为,那么实际上并不重要。
例如,如果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
}