1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

お品書き

+ 継承って?
+ メリット
+ 注意点
+ Sample


◆継承って?

既存のクラスを基に変数やメソッドを追加したクラスを作る。
継承関係にあるのクラスをスーパークラス
子のクラスをサブクラスという。

元々あるクラスと機能追加をした新しいクラスの2つがあるってことね。

Personクラスは「人」のクラスということで「人」が共通して持っている情報、名前などを扱う変数やメソッドを定義しておく。
SubClassはPersonクラスを継承することを考える。

どゆことか。

Personクラスが持っているメンバー変数やメソッドを同じように使えるということ。
さらに、各クラス独自の変数やメソッドを追加したりできる。
例えば、Teacherクラスは担当科目の情報、Studentクラスでは学籍番号などを持たせる等の、クラス構成を作ることができる。

どうやって親クラスの機能を引き継げるの?

java
class Student extends Person{

}

extendsとは拡張するという意味の英単語。

この記述でPersonクラスが持っているメンバー変数とメソッドを受け継いで使うことができる。
SubClassには独自のメンバー変数やメソッドだけを記述すれば良い。

メリット

コーディングがラクになるのと、メンテナンスがラク。

例えば、名前のデータ型や表示方法を変えたいとき、名前に関する記述がいろんなところに出ていると、修正箇所が増えてしまうが、名前の記述がPersonクラスにしか記述がなければ、そこだけの修正で済む。

注意点

継承できるクラスは1つだけ。
extendsの後には1つのクラスしか書けません。
複数記述できてしまうと、メンバー変数やメソッドの名前が被ってしまってエラーに繋がりやすい。

継承するとSuperClassのメンバー変数やメソッドを引き継いで使えるが、コンストラクタは継承しない。
これは、コンストラクタの名前はクラス名と合わせるというルールがあるため。

SubClassからPersonクラスのコンストラクタを呼び出して利用することはできる。

◆継承Sample

java
public class Person{
  private String name; //共通の情報としてname メンバー変数として名前を持っている。

  public void setName(String n){ //名前を設定するためのメソッド
    name = n;
  }
  public void display(){ //名前を表示するためのメソッド
    System.out.println("名前:" + name);
  }
}
java
public class Student extends Person{ //Personクラスを継承
  private int stuNo; //クラス独自の変数として学籍番号を持つ

  public void setStuNo(int s){ //学籍番号を設定するためのメソッド
    stuNo = s;
  }
  public void displayStuNo(){ //学籍番号を表示するメソッド
    System.out.println("学籍番号:" + stuNo);
  }
}
java
public class StuSample{
  public static void main(String[] args){
    Student stu = new Student(); //サブクラスのStudentクラスのオブジェクトstuを作る

    // スーパークラスのメソッド
    stu.setName("大輔");
    stu.display();

    // サブクラスのメソッド
    stu.setStuNo(1);
    stu.displayStuNo();
  }
}
cmd
C:\Java\1>java StuSample
名前:大輔
学籍番号:1

スーパークラスの持っているメソッド、サブクラスが持っているメソッド、それぞれ呼び出して情報を表示できていることを確認。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?