【问题标题】: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()。我怎么能做到这一点?
【问题讨论】:
标签:
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 类的实现。