Давайте посмотрим на следующий пример:
public class BothPaintAndPrintable implements Paintable,Printable{
public void print() {}
public void paint() {}
}
public interface Paintable {
public void paint();
}
public interface Printable {
public void print();
}
public class ITest {
ArrayList<Printable> printables = new ArrayList<Printable>();
ArrayList<Paintable> paintables = new ArrayList<Paintable>();
public void add(Paintable p) {
paintables.add(p);
}
public void add(Printable p) {
printables.add(p);
}
public static void main(String[] args) {
BothPaintAndPrintable a= new BothPaintAndPrintable();
ITest t=new ITest();
t.add(a);//compiliation error here
}
}
Что, если я хочу добавить BothPaintAndPrintable
экземпляров в каждый из ArrayList? Один из способов — перегрузить метод параметром BothPaintAndPrintable
, но я пытаюсь найти альтернативы, поскольку это может снизить возможность повторного использования кода. У кого-нибудь есть другая идея?