下のコードでは、私は親クラスと子クラスオブジェクトの両方を作成しました。これらのオブジェクトは、arraylistに格納されます。私の質問は、どのように私はこれらのオブジェクトを区別することができると私は第二レベルの従業員の詳細を取得したい。これらのオブジェクト(FirstLevelEmployeeとSecondLevelEmployeeなど)を区別するにはどうすればよいですか?secondLevelEmployeeの詳細を印刷しますか?
package com.javahonk.controller;
import java.util.ArrayList;
import java.util.ListIterator;
class FirstLevelEmployee {
int id;
String name;
double salary;
FirstLevelEmployee(int id, String name, double salary) {
super();
this.id = id;
this.name = name;
this.salary = salary;
}
}
class SecondLevelEmployee extends FirstLevelEmployee {
int experience;
SecondLevelEmployee(int id, String name, double salary, int experience) {
super(id, name, salary);
this.experience = experience;
}
}
public class EmployeeDemo {
public static void main(String[] args) {
ArrayList<FirstLevelEmployee> emps = new ArrayList<>();
emps.add(new FirstLevelEmployee(1, "aaa", 20000.00));
emps.add(new FirstLevelEmployee(2, "bbb", 10000.00));
emps.add(new FirstLevelEmployee(3, "bbb", 30000.00));
emps.add(new SecondLevelEmployee(4, "zzz", 12000, 2));
emps.add(new SecondLevelEmployee(6, "yyy", 45000.00, 5));
}
}
は、すなわち '場合(EMP instanceofはSecondLevelEmployee){SecondLevelEmployee SL =(SecondLevelEmployee)EMPを' instanceof'とキャストを使用してください。 System.out.println(sl.experience); } ' – BretC
なぜ私は答えとして投稿しないでください、@ BretC? –
これは悪い解決策だと思います。鋳造とは多型を意味しません。 – duffymo