「オブジェクト指向の三大要素」について再復習の機会があったのでまとめてみた。
オブジェクト指向の三大要素とは
オブジェクト指向言語がもつ代表的な3つの特徴のことで、「カプセル化、継承、ポリモーフィズム」の3つ。
※ ただ3つの代表的な要素なだけで、これがあるからイコール「オブジェクト指向」だとかじゃないとかそういうものではない。
カプセル化
オブジェクトの安全性を高めるために、オブジェクトのメンバーを保護すること
※メンバ = オブジェクトのメソッド及び変数
この性質を理解し、影響範囲の小さく疎なプログラミングを心がけることが、大規模で安全なシステム構築に繋がる。
継承
あるクラスを引き継いで新しいクラスを定義することできること
この特徴があるおかげで、共通部分をまとめて、再利用することができる。
ポリモーフィズム(多態性)
オーバライドやオーバロードによって、メソッドを状況によって使い分けることができること
※ オーバライド: 親クラスのメソッドを子クラスで上書きすること
※ オーバロード: 同一クラス内で引数の違いによってメソッドの呼び分けること
参考資料:
http://teacher.nagano-nct.ac.jp/fujita/oopElements.php
定義が書いてある
https://qiita.com/koher/items/6878c80014992900add7
実例込みで説明してある
おまけ: ruby,railsにおいて
- オーバロードはなし(動的型付けのため)
- 抽象クラス、抽象メソッドはなし 例外を投げる擬似抽象メソッドで対応
https://qiita.com/yynozk/items/66bf766166eda2b84a03 - インターフェースもないよ (ダックタイピング = アヒルのようになけば、それはアヒル)