次のような場合、どのようなOO設計が良いか分かりません。スーパークラスからすべてのデータを取得する(this =)
まず第一に私はあなたが使用することはできません知っている:
this = anObject;
しかし、次のように私のsitiuationです。私は、20以上のデータフィールドを持つスーパークラス(Film)を持っています。サブクラス(ComedyFilm)はスーパークラスを拡張し、ちょうど3つの追加のデータフィールドを持ちます。
これは私が私のサブクラスに配置したいコードです:
public ComedyFilm(GenericFilm parent, FilmRating rating) {
this = parent;
}
ComedyFilmの新しいインスタンスを作成するとき、それはのようなものになるように:
Film myFilm = new Film(.... long constructor);
ComedyFilm myComedyFilm = new ComedyFilm(myFilm, FilmRating.EIGHTEEN);
ありますコンストラクタのすべての変数を取得/設定せずにこれを行う簡単な方法は?せずに
this.filmName = parent.filmname;
this.directors = parent.directors;
//etc...
ありがとう!
映画は抽象ですか? – Freiheit
なぜフィルムデータと評価を受け取り、その長いスーパーコンストラクタを内部的に呼び出す別のコンストラクタを作成しないのですか? – Thomas
なぜ映画を制作してからコメディ映画を制作しますか?長いコンストラクタやゲッターとセッターだけを持つComedyFilmだけではないのですか? – talnicolas