User.java(抽象クラス)は、従業員オブジェクトを取り込み、にそれを行うpromoteEmployee方法における基本的類似のオブジェクトタイプをどのように変更しますか?
public abstract class User {
private int id;
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = int;
}
}
Admin.java
public class Admin extends User {
public Admin(int id) {
super.setId(id);
}
public void promoteEmployee(Employee employee) {
// How would I change the employee object into an admin object?
}
}
Employee.java
public class Employee extends User {
public Employee(int id) {
super.setId(id);
}
}
管理オブジェクトあなたはどうしますか?
基本的に
Employee employee = new Employee();
私はそれはそれは別のサブクラスとしてサブクラスをキャストすることはできません
Admin employee = new Admin();
オブジェクトを作成した後は、そのオブジェクトをあるタイプから別のタイプに変更することはできません。 –
メソッドの説明: "このプロモーションは現在のオブジェクトを破棄し、管理者を表す新しいオブジェクトを読み込みます。"あなたはどうやって新しいものを作りますか?私は同じ変数名のエラーを取得し続ける –
なぜあなたも管理クラスが必要ですか?あなたのコードで 'if(user instanceof Admin)'を使ったことがあるならば、それは非常に悪いデザインです。たとえば、型enum。 –