私は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
したをキャストできません。別のサブタイプでもないため、そうである可能性がありますが、そうではありません。getPersonFromStorage
Employee
私は次のことができます:
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;
}
しかし、できればこの複雑さは避けたいと思います。初歩的なことを見落としているような気がします。これを解決するより良い方法はありますか?