Java

複数のクラスを保持するListを作る


概要

スーパークラスのListを作って、実際にはサブクラスを保持しておきます。

abstractでサブクラス毎に別のデータを取得できます。


サンプル

AというAbstractクラスを親として、X,Yというサブクラスを作ります。


A.java

abstract class A {

int a;

public int getA() {
return a;
}

public void setA(int a) {
this.a = a;
}

abstract String hoge();
}



X.java

public class X extends A {

String x;

public String getX() {
return x;
}

public void setX(String x) {
this.x = x;
}

@Override
String hoge() {
return x;
}
}



Y.java

public class Y extends A {

String y;

public String getY() {
return y;
}

public void setY(String y) {
this.y = y;
}

@Override
String hoge() {
return y;
}
}


Aを要素としたArrayListに、X,Yそれぞれを追加します。


main.java

ArrayList<A> list=new ArrayList<>();

X x=new X();
x.setX("x!!");
Y y=new Y();
y.setY("y!!");
list.add(x);
list.add(y);

for(int i=0;i<list.size();i++){
System.out.println(list.get(i).hoge());
}


->

I/System.out:
x!!
y!!