【问题标题】:Creating java interface with similar methods用类似的方法创建java接口
【发布时间】:2021-01-03 23:51:23
【问题描述】:

我正在简化我有两个类(Lab 和 Pitbull)的代码。它们具有相同的方法名称,但调用不同的辅助方法。辅助方法必须保留。

class lab{
      void sprint(boolean start){
          Labhelper.doSomething()
      }
}
class pitbull{
      void sprint(boolean start){
          Pitbullhelper.doSomething()
      }
}

我的目标是创建一个接口(即狗),我可以在其中创建实验室和狗的列表,但也可以从该列表中调用 void sprint()。我怎么能做到这一点?

【问题讨论】:

  • 向我们展示您创建上述dog 接口的尝试。

标签: java list oop arraylist interface


【解决方案1】:

我们需要创建一个 Dog 接口,Lab & Pitbull 将实现这个接口。

接下来,我们可以创建一个包含 Lab 和 Pitbull 实例的 Dog 列表。当此列表被迭代并调用 sprint 方法时,将根据调用它的对象调用实现。

见下面的代码-

interface Dog {
    void sprint(boolean start);
}

class Lab implements Dog {
  @Override
  public void sprint(boolean start) {
    Labhelper.doSomething();    
  }
}

class Pitbull implements Dog {
  @Override
  public void sprint(boolean start) {
    Pitbullhelper.doSomething();
  }
}

public class MainClass {
  public static void main(String[] args) {
    List<Dog> dogs = new ArrayList<>();
    dogs.add(new Lab());
    dogs.add(new Pitbull());
    dogs.forEach(dog -> dog.sprint(true));
  }
}

在上面的代码中,当对第一个对象调用 sprint() 时,将调用 Lab 类的实现,而对于第二个对象,将调用 Pitbull 类的实现。

【讨论】:

    猜你喜欢
    • 2013-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多