BLOG

【Java復習】継承について

みなさんこんにちは!
覚えてくださっている方はお久しぶりです、かのんです!
今回は久しぶりの更新という事で、
Javaの復習、その中でも継承についての記事を書かせていただきたいと思います(/・ω・)/!
基礎的な部分からおさらいしていきたいと思いますのでお付き合いいただけると幸いです。
それでは早速内容に入っていきましょう~!

継承とは?

途中まで同じ処理なのに別のクラスだから別々に書かなきゃいけないのめんどくさいな~そんな時、あると思います。
なんと継承を使えば、共通の部分は1つにまとめて、そのあとの処理を別のクラスに書くことができちゃいます!

継承のやり方

やり方は簡単。
子クラス(引き継ぎたいクラス)のクラス名のあとに
「extends 親クラス名」とつけるだけ!
親クラス(引き継がせたいクラス)に書いたメソッドやフィールドを使うことができます。

public class Human{
  String name;
  String age;
}

public class Yamada extends Human{
}

これでHumanクラスを引き継いだYamadaクラスが出来ます。
このYamadaクラスには、書かれてはいませんがHumanクラスで作ったnameやageも含まれています。
共通で使用できるならいちいち書かなくてもよくなるのですごく楽になりますね!

継承の注意点

★private修飾子を付けたフィールドやメソッドは引き継がれません!
private修飾子は基本的に現在のクラスからしか参照できないものなのですが、
親子関係であっても例外にはならないので注意が必要です。
逆に言えば、うまく利用してやれば使用の制限をかけることが出来るので、
適時判断して修飾子をつけていってあげることが大事になります。

★1つの子クラスにつき1つの親クラス
欲張ってextendsのあとに複数親クラスを書くことは出来ません。
怒られてしまいます。

★親クラスには複数の子クラスを継承させることが可能
処理ごとにどんどんと派生させていくことが出来ます。
とても便利。

★ほかのクラスの子になっていても、また別のクラスの親になることが可能
例えばHanakoクラスを新規作成するとします。
Humanクラスを継承したYamadaクラスを継承したHanakoクラスという図にすることが可能です。
この際にYamadaクラス経由でHanakoクラスもHumanクラスのフィールドなどを使用することが出来ます!

★クラスにfinalを付けると継承させることができなくなる
継承しようとするとコンパイルエラーになります。
継承させたくない場合などに便利です。

★メソッドのオーバーライド(処理の上書き)が可能
親クラスで作ったメソッドと同じ形で子クラスにメソッドを作った場合、
子クラスのもので処理が上書きされて実行されます。
なので、もし子クラスごとに処理を分けたい場合に非常に便利です。
オーバーライドを行う際なのですが、まったく同じ形で書かなければ別物として認識されてしまうので注意が必要です。

終わりに

継承のことはわかっているつもりだったのですが、
抽象化などとごちゃごちゃになったりしていた部分もあったりしたので、
きちんと知識として理解して、応用して使っていけるようになりたいなと思うかのんでした。
ありがとうございました!

BLOGトップへ戻る