A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
依存性を極力排除するため。
処理が末端のクラス名で書いてあれば
それはそのクラス専用の処理になってしまいます。
上位クラスを使って書いてあれば、それは
新しいサブクラスに対しても使える可能性が高いし
そういうふうに処理を書きます。
オブジェクト試行設計(OOD)ではクラス間の共通性
分析は設計のとても重要な工程です。
クラス間の共通性を見いだし、
複数のクラスの共通性を抽象クラスやインターフェースで表現し
処理の対象を極力抽象クラスやインターフェースにすることで
機能の追加(具象クラスの追加)に対する
処理の変更を減らすことが可能になるのです。
私は機能の「プラグイン化」等と勝手に呼んでます。
DI(依存性注入)やIoC(制御の反転)と組み合わせると、
依存性を減らし、仕様変更の影響を小さくするという
観点において、素晴らしい結果を得ることができます。
No.3
- 回答日時:
サブクラス固有のプロパティ、メソッドは関係なく、スーパークラスに用意されているプロパティ、メソッドによって操作をしたい時に有効です。
スーパークラスを継承するサブクラスがいくつもあり、処理の流れ上、サブクラスがどんなものかを把握する必要がない時に利用されます。
Super obj;
if (true) {
obj = new Sub1();
} else {
obj = new Sub2();
}
obj.SuperClassMethod();
とか
Super factory() {
if (true) {
return new Sub1();
} else {
return new Sub2();
}
}
Super obj;
obj = factory();
obj.SuperClassMethod();
みたいな。
No.2
- 回答日時:
オブジェクト指向プログラミングで多態性を実現するのに使います。
「java oop 多態性とは メリット」とか検索すると、詳しい解説とか見つかります。
一例としては、GUIプログラムでのユーザインタフェース要素(ボタンやテキストフィールド)を一括して処理する場合とかを考えると、メリットが分かりやすいかと。
※基本的にこの手の質問は、ひたすらネット検索するか、書籍を読むほうが理解が深まります。質問サイトで質問するのがムダという。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C# 「データが失なわれる可能性...
-
WPF C# PointToClient
-
Javaのインスタンス化の構文の...
-
vb.net 自作プロパティの削除に...
-
VB DLLプロジェクトについて
-
(vba)他のアプリケーションの右...
-
interface,extend,implementの...
-
JLabelとJLabelを結ぶ直線をJCo...
-
markメソッドについて
-
c++でのヘッダーファイルの循環...
-
「ラッパークラス」の存在意義...
-
【.NET】コンストラクタをあと...
-
VB or C# HashTable
-
「継承されたメソッドの可視性...
-
「タイプ初期化子が例外をスロ...
-
エクセルVBAで、条件に一致する...
-
変数名の付け方
-
複数の変数を宣言する時、同時...
-
インスタンス参照でアクセスで...
-
C#にて別クラスの関数を使いたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB DLLプロジェクトについて
-
interface,extend,implementの...
-
(vba)他のアプリケーションの右...
-
「ラッパークラス」の存在意義...
-
JTextFieldの入力制限
-
C# 「データが失なわれる可能性...
-
オーバーライドとラッパーの違い
-
【C#】クラスのコンストラクタ...
-
「継承されたメソッドの可視性...
-
抽象クラスをJUNITでテストする...
-
c++でのヘッダーファイルの循環...
-
スタックで成績表を作るプログ...
-
C#からDLLを呼びたいのですが・...
-
setTextについて
-
javaの「型」がよくわかりません。
-
インナークラスについて
-
委譲って何ですか?
-
Commons-Discovery.jarとは?
-
WPF C# PointToClient
-
「IOException は対応する try ...
おすすめ情報