
今回は…
というテーマでお送りします。

新たな考えですね。確実に、聴いていきます。

【1】 継承とは

継承とは
新しいクラスを定義すること。
です。
元になるクラスを…
といいます。
そして、親クラスを元に定義されたクラスを…
といいます。
サブクラスは、スーパークラスの
メンバを引き継ぎます。
新しいクラスを定義すること。
✅ 元になるクラスをスーパークラス
(親クラス)という。
✅ 親クラスを元に定義されたクラスを
サブクラス(子クラス)という。
✅ サブクラスは、スーパークラスの
メンバを引き継ぐ。
イメージは、このような感じです。
あるクラスAがあります。
メンバ(フィールドやメソッド)が定義されています。

別のクラスBでは、これらのメンバを継承して
更に拡張して メンバを定義できます。

この時に、クラスAをスーパークラスといい…

クラスBをサブクラスといいます。

【2】 クラス図

クラス図は、このように記述します。
スーパークラスを書きます。
フィールドとメソッドが記述されています。

そして、サブクラスを書きます。
こちらには…
を書きます。

そして 両者の関係性は、このように表します。
線で結んで、スーパークラス側に
三角の印がついています。
矢印ではなく、三角の印です。

この関係性は
です。
オブジェクト指向の考えでは…
いつくかのオブジェクトの共通点を抽出して
定義することを
といいいます。

サブクラスの特性の 基本的な部分を抜き出すと
スーパークラスになる…。といった感じですね。
反対に、あるオブジェクトに 特性を加えて
新たに定義することを
といいます。

こちらは、スーパークラスに 特性(メンバ)を
追加して、サブクラスを定義する。…という感じです。
サブクラス と スーパークラス の関係は
ということ…
今のところは、何となくで良いので
押さえておきましょう。
この記号の向きは、要チェックですよ。


スーパークラスのほうに、三角がついているんですね。
ノートに 図を書いておきます。

ここも、チェックしておきます。
【3】 サブクラスの定義と利用

サブクラスの定義はこのようになります。

class サブクラス名 extends スーパークラス名
という形で extends キーワードを用いて 定義します。
そして、クラスのブロックの中には…
のみ記述します。この事を
といいます。
サブクラス を インスタンス化 すると…
そのインスタンスには、スーパークラスで
定義されたメンバも存在する事となります。
そして 利用する側は、サブクラスのメンバ と同様に
スーパークラスのメンバ にアクセスできます。
イメージは、このようになります。
スーパークラスが定義されています。
このスーパークラスにはメンバがあります。

このスーパークラスを継承して
サブクラスが定義されています。
extends キーワードを使用して定義して
差分のみ記述します。

サブクラスで追加するメンバのみです。
利用する側は、サブクラスをインスタンス化すると
そこには、スーパークラスで定義されたメンバと
サブクラスで定義されたメンバが存在します。

ですので…
同様に アクセスできます。

このイメージで押さえておきましょうね。
【4】 継承の利点

利点は 大きく2つあります。
1つは…
ということです。
既存のクラスを活用して、差分をコーディング
する方式なので とても生産性が上がります。
それまでのプログラム資産を 無駄にしない
こととなりますね。
もう1つは…
ということです。
継承を使わないと、同じコード(プログラム)が
多数存在してしまうことになり…
修正箇所も 多くなってしまう傾向にあります。
それに対して、継承していれば、その継承元のみの
対応で済む場合が多くあります。
このような利点があることも
知っておきましょう。
✅ 保守性に優れている。
【5】 継承のポイント

継承のポイントをいくつか
見ていきましょう。
① サブクラスのサブクラス

あるサブクラスがある場合
更に そのサブクラスを 作ることができます。

元になるクラスのメンバは…
サブクラス、サブクラスのサブクラス…と
順に継承されることとなります。
ただし 小さな継承を多用すると、かえって
わかりにくくなってしまう場合もありますので
このあたりは 継承する時に
整理して 考える必要があります。
② java.lang.Objectクラス

extendsキーワードを付けずに
クラスを 定義した場合には…
を暗黙的に継承します。

また、何らかのクラスを継承した場合にも…
元を辿ると Java.lang.Object クラスを
継承しています。

したがって、全てのクラスは
全て持っている。

という事となります。
③ 単一継承

Javaは、クラスを定義する時に
継承元に指定できるクラスは1つだけです。
これを「単一継承」といいます。

複数のクラスを 継承して
クラスを作る事は できません。
こちらは「多重継承」といいます。

他の言語では こちらを採用している場合も
ありますが、Javaでは不可となっています。
Javaは「単一継承」。押さえておきましょう。

既にあるクラスを 有効活用できそうですね。
分かりにくくならない範囲で
活用していこうと思います。

同時に継承できないということですね。
理解しました。
【まとめ】

新しいクラスを定義すること。
✅ 元になるクラスをスーパークラス
(親クラス)という。
✅ 親クラスを元に定義されたクラスを
サブクラス(子クラス)という。
✅ サブクラスは、スーパークラスの
メンバを引き継ぐ。
線で結んで、スーパークラス側に
三角の印をつける。
class サブクラス名
extends スーパークラス名
✅ 利用する側は、サブクラスのメンバも
スーパークラスのメンバも
同じように利用できる。
✅ 保守性に優れている。
定義することができる。
② 全てのクラスの親クラスは
java.lang.Object。
③ スーパークラスは
1つだけ指定できる。
(単一継承)
今回も、ご覧いただき、ありがとうございます。