オブジェクト指向の4つの特徴

IT

✅この記事で分かること

  • オブジェクト指向とは?
  • カプセル化・継承・抽象化・多態性の概念

オブジェクト指向

オブジェクト指向とは、プログラムやシステムの構成要素を「オブジェクト(モノ)」として捉え、データとその操作(メソッド)を一つにまとめて管理する考え方

オブジェクト指向のメリット

・プログラムの再利用性が高い

・プログラムの拡張性が高い

・複雑なシステムでも管理しやすくなる

カプセル化

カプセル化とは、「データ(中身)」を外部の操作から守る仕組みのことです。

たとえば「テレビのリモコン」を考えてみましょう。
ボタンを押すとチャンネルが変わったり音量が変わったりしますが、
私たちはリモコンの中の電気回路をいじる必要はありません。
外からは「ボタンを押す」という決まった方法で操作するだけで、中の仕組みは見えないようになっています。

プログラムでも同じです。
たとえば「銀行口座」というオブジェクトがあったとき、残高のデータを外部から直接書き換えられるとデータの整合性がとれません。
そこで、「お金を入れる」「お金を引き出す」という決まった方法(メソッド)を通じてしか操作できないようにすることで、保守性を高めます。

このように、中身を守りながら必要な操作だけを外に公開する考え方が「カプセル化」です。

継承

継承とは、共通する性質や動作を引き継ぐという考え方です。

たとえば、「動物」というグループを考えてみましょう。
動物には「食べる」「寝る」「歩く」など共通する行動があります。
そこから「犬」や「猫」など、もう少し細かい種類を作るとき、
一から全部の機能を書くのではなく、「動物」が持つ共通の性質を引き継ぐ(継承する)ことで、
重複を減らし、効率的に作ることができます。


このように、継承を使うことで似た性質を持つものをまとめやすくなり、
後から新しい種類を追加する時も最小限の修正で済みます。

つまり継承は、コードの再利用を可能にし、管理を楽にする仕組みです。

抽象化

抽象化とは、複雑なものをわかりやすく整理し、必要な部分だけを取り出す考え方です。

現実世界はとても複雑ですが、プログラムを作るときにそのすべてを再現する必要はありません。
たとえば「車」をプログラムで表す場合、
エンジンの中の細かい構造やガソリンの化学反応まで記述するのは大変です。
そこで、「車とは走る・止まる・曲がるもの」といった本質的な特徴だけを取り出すことで、
わかりやすく扱えるようにします。

抽象化は、ものごとの重要な特徴にフォーカスし、不要な部分を隠す考え方です。
これにより、理解しやすく、変更に強い設計を作ることができます。
抽象化もまた複雑な情報をシンプルにまとめるための特徴です。

多態性(ポリモーフィズム)

多態性(ポリモーフィズム)とは、同じ命令をしても、オブジェクトによって違う反応をするという特徴です。

たとえば「楽器を演奏する」という命令を考えてみましょう。
ピアノなら鍵盤を叩いて音を出しますし、ギターなら弦を弾いて音を出します。
命令(演奏する)は同じでも、実際の動作や音の出し方は楽器の種類によって異なります。

プログラミングの世界でもこれと同じです。
たとえば「play()」というメソッドを呼び出したとき、
ピアノオブジェクトではピアノの音を出す処理が行われ、
ギターオブジェクトではギターの音を出す処理が行われます。

呼び出す側(=演奏を指示する人)は、どんな楽器かを意識せずに「演奏して」と伝えるだけで良いのです。
これにより、同じ操作でさまざまなオブジェクトを扱える柔軟さが生まれます。
指揮者は全員に同じ命令を出しますが、バイオリン、トランペット、ドラムなど、
各楽器は自分の役割に応じて違う音を奏でます。
これが、多態性(ポリモーフィズム)の考え方です。

まとめ

特徴目的
カプセル化データを守る
継承共通部分を再利用
多態性(ポリモーフィズム)同じ操作で異なる結果を出す
抽象化複雑な構造を整理する

ここまで「オブジェクト指向の特徴」──カプセル化、継承、抽象化、多態性(ポリモーフィズム)──の概要や考え方を紹介しました。試験や実務で重要なのは、単語の意味だけでなく「なぜそれが役立つか(保守性・再利用性・拡張性の向上)」を理解することだと思います。今回の記事が参考になれば幸いです。最後までご覧いただきありがとうございます。

タイトルとURLをコピーしました