【发布时间】:2018-08-25 08:50:19
【问题描述】:
我有类 Dog, Cat, ... 扩展 Pet 和 init 方法。如果init方法必须为void,如何消除重复代码。
public class Tester {
private Pet pet1;
private Pet pet2;
private int i;
public void pet1Init(){
switch (i){
case 0:
pet1 = new Cat();
break;
case 1:
pet1 = new Dog();
break;
.....
}
}
public void pet2Init(){
switch (i){
case 0:
pet2 = new Cat();
break;
case 1:
pet2 = new Dog();
break;
.......
}
}
}
【问题讨论】:
-
你可以添加一个
private static Pet create(int i) { ... }方法。 -
@BenWatson,以及如何初始化
pet1和pet2(如果它们作为参数传递)? -
@BenWatson Java 是 pass by value。因此,您不能通过将参数传递给方法来初始化参数。
标签: java code-duplication