次の例を見てみましょう。
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 にインスタンスを追加したい場合はどうすればよいですか? 1 つの方法は、BothPaintAndPrintable
パラメーターを使用してメソッドをオーバーロードすることですが、これを行うとコードの再利用性が低下する可能性があるため、別の方法を検討しています。誰か別のアイデアがありますか?