私は2つのクラスを持っていPersonますEmployee. Employee伸びPersonます。
Personストレージからを読み取るメソッドがあり、 を読み取るメソッドを作成していますEmployee。
Personコードをコピーして貼り付けることなく、 と同じプロパティを読み取るために持っているメソッドを再利用したいのEmployeeですが、それを行う方法が見つからないようです。
public Person getPersonFromStorage() {
Person person = new Person();
// ... logic
return person;
}
public Employee getEmployeeFromStorage() {
Employee employee = new Employee();
// ... logic for employee-specific fields
// I want to read the fields inherited from Person here
return employee;
}
ではないため、から取得Personしたをキャストできません。別のサブタイプでもないため、そうである可能性がありますが、そうではありません。getPersonFromStorageEmployee
私は次のことができます:
public Person getPersonFromStorage(Person person) {
if(person==null) { person = new Person(); }
// ... logic
return person;
}
public Employee getEmployeeFromStorage() {
Employee employee = (Employee) getPersonFromStorage(new Employee());
// ... logic for employee-specific fields
return employee;
}
しかし、できればこの複雑さは避けたいと思います。初歩的なことを見落としているような気がします。これを解決するより良い方法はありますか?