オブジェクトの三大機能 カプセル化/継承/多様性
オブジェクト指向の本質
「現実世界を仮想世界内にそのまま再現すること」
↓
Javaでは、それを開発者が安心して安全に円滑に行えるように
文法などに専用の機能が準備されている
[オブジェクトの三大機能]
① カプセル化
属性や操作を一部の相手からは利用禁止にする機能
ex. [キノコ] 眠れ → [勇者]
[剣] ×眠れ → [勇者]
現実的に剣が勇者に「眠れ」という指示を出すのはあり得ない
よって、「眠る」操作は剣オブジェクトから呼べないようにしておいた方が安全!
② 継承
過去に作った部品を元にして、新しい部品を作れる機能
ex. [普通の勇者] → [空を飛べるスーパー勇者]
もとの部品から少し付け加えるだけで良いのであれば、この機能を使えば同じ部分をもう一度いちいち記述しなくてもOK ラクチン!
③ 多様性
似ている2つの部品を「同じようなもの」と見なし、
「いい加減」に利用できる機能
ex.[勇者] 戦う→ [キノコ] ・・・[勇者] 戦う→[モンスター]
戦う→ [コウモリ]
「キノコ」への戦うと「コウモリ」への戦うは操作はほとんど同じだから、
いちいちキノコへの戦う動作とコウモリへの戦う動作のコードを別で記述するより、
攻撃相手をざっくり「モンスター」と見なし、
記述をひとめとめにした方が楽! コードもすっきり!