お耳を拝借vol.7 オブジェクト指向の3大要素
お耳を拝借vol.7 オブジェクト指向の3大要素…

前回、プログラミングに関する少し踏み込んだ内容の、オブジェクト指向型言語について解説しました。
今回は、オブジェクト指向の3大要素について詳しく解説していきます。
長くなりそうなので、各要素のタブをクリックしていただくと、解説がご覧いただけます。
↓
継 承
クラスを継承し、親子関係を構築することです
Javaでは親クラスをスーパークラス、子クラスをサブクラスと呼びます。
言葉ではイメージしにくいと思いますので、下図をご参照ください。

左図はクラスA(親クラス)を継承した
クラスB(子クラス)です。
継承とは親クラスを内包することで、
メソッドやプロパティ、変数の定義を引き継ぐ、
というイメージが分かりやすいと思います。
継承した子クラスを利用することで、親クラスの処理の呼び出しだけではなく、さらに拡張した処理を提供することができます。
Javaにおける継承の実例は以下の通りです
public class SuperClass{
メソッドや変数の定義~
}
public class SubClass extends SuperClass{
メソッドや変数の定義~
}
カプセル化
クラス(オブジェクト)内のデータやメソッドを保護することです。

例えば、
⇐左図のような定義のクラスがあったとします。
定義のうち、
Nameプロパティは他のクラスへ提供しても良いが AdressとTelプロパティはこのクラス内でのみの使用に留めたい。
メソッドAは他クラスのメソッドから呼び出しても良いがメソッドBは呼出禁止にしたい。
という場合があります。
その際に、アクセス修飾子というものを定義して外部からのアクセスを制限し、データを保護します。
Javaにおけるアクセス修飾子の種類は以下の通りです。
(アクセス修飾子なしは割愛)
public:どこからでも参照可能
private:同クラスのみ参照可能
protected:同クラス、サブクラスのみ参照可能
ポリモーフィズム
ケースに応じてメソッドを使い分けることです。
具体的には、オーバーライド、オーバーロードという考え方でメソッドを定義します。
具体的にどのようなプログラミングになるか、Javaで実例を記載します。
public class Parent {
public void TestMethod(String str) {
~処理A~
}
public void TestMethod(String str, String str2) {
~処理C~
}
}
public class Child extends Parent{
@Override
public void TestMethod(String str) {
~処理B~
}
}
上記の通り実装して
Childクラス(子クラス)のTestMethodを実行すると、処理Aではなく処理Bが走ります。
このように処理を再定義して上書きすることをオーバーライドと言います。
また、Parentクラス(親クラス)のTestMethodを実行する際に引数を1つ設定すると処理Aが、
2つ設定すると処理Cが走ります。
このように多重定義により処理を分けることをオーバーロードと言います。
いかがでしたでしょうか。
少し踏み込んだ内容になってきました。
次回は「クラス」、「メソッド」について説明して行きたいと思います。