いくつか検索した後、コピーコンストラクターと継承に関する私の質問に対する良い答えが見つかりませんでした。User と Trainee の 2 つのクラスがあります。Trainee は User から継承し、2 つの String パラメータが Trainee に追加されます。これで User のコピー コンストラクターを作成できましたが、Tranee のコピー コンストラクターには満足できません。ユーザー コピー コンストラクターのコードは次のようになります。
public User (User clone) {
this(clone.getId(),
clone.getCivilite(),
clone.getNom(),
clone.getPrenom(),
clone.getEmail(),
clone.getLogin(),
clone.getTel(),
clone.getPortable(),
clone.getInscription(),
clone.getPw()
);
}
Trainee コピー コンストラクターで super を使用しようとしました。
public Trainee (Trainee clone) {
super (clone);
this (clone.getOsia(), clone.getDateNaiss());
}
しかし、それは機能せず、完全なバージョンのコピー コンストラクターをコーディングする必要がありました。
public Trainee (Trainee clone) {
this(clone.getId(),
clone.getCivilite(),
clone.getNom(),
clone.getPrenom(),
clone.getEmail(),
clone.getLogin(),
clone.getTel(),
clone.getPortable(),
clone.getInscription(),
clone.getPw(),
clone.getOsia(),
clone.getDateNaiss()
);
}
メインの構築のため、新しいインスタンスを次のようにキャストする必要があります。
User train = new Trainee();
User train2 = new Trainee((Trainee) train);
だから私の質問は:これを行うためのよりクリーンな方法はありますか? スーパー使えないの?
ご回答とご支援をよろしくお願いいたします。