継承について、シンプルな例を使って整理。
継承とは
親クラスの中身(変数、メソッドなど)を、子クラスに受け継がせることができる。
なぜ継承を使うのか?
プログラムの行数が減り、手間が省ける。修正の時も、共通部分に関しては、一回の修正で複数の箇所を修正できる。
継承の例
実際に継承の例を作ってみる。
まず下記のクラスを用意した。
- 親クラス:MountainPlace
- 子クラス:MountainPlan
- メインクラス:Main
下記の例を使って、親クラスの定義した変数を子クラスのメソッドで使い、メインクラスで出力してみる。

親クラス
// MountainPlace.java
//親クラス
public class MountainPlace {
//親クラスの変数
String name;
String place;
//親クラスのメソッド
String placeDetail() {
return name + "の場所は" + place + "にあります";
}
}
まずは親クラスとして、MountainPlaceを設定する。上記の通り、変数にnameとplaceを設定し、メソッドはplaceDetail()を作成。
子クラス

子クラスとしてMountainPlanを設定。extendsでMountainPlaceを継承している。
継承により、親クラスで設定した変数nameは引き継がれるため、子クラスのメソッド内でnameを定義することなく、そのままnameを使用することができる。
継承された子クラスでインスタンスを作って出力
// Main.java
public class Main{
public static void main(String[] args) {
//インスタンスをMountainPlan(子クラス)から作成。
MountainPlan mountain1 = new MountainPlan();
//MountainPlace.java (親クラス)の変数
mountain1.name = "白馬岳";
mountain1.place = "長野県と新潟県と富山県の間";
//MountainPlan.java (子クラス)の変数
mountain1.time = "7月";
mountain1.person = "Aさん";
//MountainPlace.java(親クラス)のメソッド
System.out.println(mountain1.placeDetail());
//MountainPlan.java(子クラス)のメソッド
System.out.println(mountain1.whenToGo());
System.out.println(mountain1.whoToGo());
}
}
Mainクラスで出力してみる。
まずは親クラスで設定した変数nameとplace、子クラスで設定した変数timeとpeersonに具体的な値を入れる。
その後MountainPlanクラス(子クラス)を使って、インスタンスを作成。
メソッドを使って出力した。
実際に出力

親クラスの変数のnameが子クラスでもきちんと呼び出せた。
全体像を把握する
下記にJavaやwebアプリケーションについての記事をまとめた。
-
-
Javaでwebアプリケーションを作る
ここでは、Javaでのwebアプリケーションの作成についてまとめていく。 そもそもwebアプリケーションとは? そもそもwebアプリケーションとは何か?ウェブサイトとの違いは? 下記にまとめた。 ...
続きを見る
コンピューターについての全体像も把握しておくと、プログラミングのさらなる理解に役立つ。
-
-
Screen-Shot-2021-06-11-at-11.45.16
続きを見る
今回使ったコード
// Main.java
public class Main{
public static void main(String[] args) {
//インスタンスをMountainPlan(子クラス)から作成。
MountainPlan mountain1 = new MountainPlan();
//MountainPlace.java (親クラス)の変数
mountain1.name = "白馬岳";
mountain1.place = "長野県と新潟県と富山県の間";
//MountainPlan.java (子クラス)の変数
mountain1.time = "7月";
mountain1.person = "Aさん";
//MountainPlace.java(親クラス)のメソッド
System.out.println(mountain1.placeDetail());
//MountainPlan.java(子クラス)のメソッド
System.out.println(mountain1.whenToGo());
System.out.println(mountain1.whoToGo());
}
}
// MountainPlace.java
//親クラス
public class MountainPlace {
//親クラスの変数
String name;
String place;
//親クラスのメソッド
String placeDetail() {
return name + "の場所は" + place + "にあります";
}
}
// MountainPlan.java
//親クラスから子クラスへ継承。
class MountainPlan extends MountainPlace {
//子クラスの変数
String time;
String person;
//子クラスのメソッド。nameは親クラスから継承されている。
String whenToGo() {
return time + "に" + name + "にいく予定です";
}
String whoToGo() {
return person + "と" + name + "にいく予定です";
}
}