【问题标题】:Class implementing two interfaces with same method? [closed]使用相同方法实现两个接口的类? [关闭]
【发布时间】:2013-08-29 12:59:52
【问题描述】:
/* 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();
   }

}

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

【问题讨论】:

  • 我不明白你的问题...
  • 你想要一个实现这两个接口的类吗?
  • 问题是什么?
  • 请编辑您的问题以使其更清楚,但我认为您正在寻找的答案是肯定的
  • 我不认为因为英语不好而对问题投反对票是好的做法——示例代码为解释留下了空间,但不同的可能问题(;-))本身并不愚蠢,只是非常难懂的英语。有趣的是,所有不同的解释都得到了回答! :)

标签: java methods interface abstract


【解决方案1】:

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

public interface Birds extends Animal

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

例如,如果Parrottravel 实现为动物或bird,它不应该在这两种情况下吗?

【讨论】:

    【解决方案2】:

    我猜你没有正确描述

    你可能想写

    public class MammalAni implements Animal,Birds{
    

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        接口方法必须由具体类实现 实现它们。

        现在假设有两个接口然后都说具体类必须实现方法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
        }
        

        【讨论】:

          猜你喜欢
          • 2015-10-19
          • 2014-10-25
          • 2022-12-03
          • 2014-08-15
          • 2011-12-13
          • 1970-01-01
          相关资源
          最近更新 更多