はい、そろそろ続きを。
今度は継承をやっていきます。
作成するシステムを分析すると、作る必要のあるクラスがたくさん出てきます。
それぞれ違った役割のクラスもありますが、いくつかは似た役割のクラスもあります。
なので、よく似たクラスを見つけてその共通部分を一つにします。
類似のクラスはそれを使い、容易に作成でき、メンテナンスが楽です。
これを可能にするのが継承です。
継承は同じ種類のクラスを差分だけを作ることで完成できる便利な方法です。
今回は継承を使ったクラスの作成方法と規則を解説します。
1.継承とは
継承はオブジェクトの設計図であるクラスを再利用するための技術。
既存のクラスを引き継いだうえで、機能を付け加えたり、一部変更をしたりして新しいクラスを作れます。
では、実際にやりながら見ていきます。
継承元のクラスをスーパークラスと言う。
そして、スーパークラスを継承して作る新しいクラスはサブクラスと言います。
では、継承をわかりやすくするために具体的な例を見ていきます。
例えばスポーツジムの館員管理システムがあったとすると…
一般会員、学生会員、法人会員があったとします。
こんな感じwww
三種類の会員がいますが、3つのクラスをそのまま作るのはオブジェクト指向的に
三種類の会員には共通部分があるはずなので、その共通部分をまとめてスーパークラスにします。
package sample17_01;
public class Member {
private int id;
private String name;
public Member(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public static void main(String[] args) {
Member member = new Member(100, "ALIS1");
System.out.println(member.getId()+"/"+ member.getName());
}
}
プログラムのほうは大体こんな感じになります。
で、起動するとこのようになるはずです。
次はMemberクラスを継承して学生会員のクラスを作成します。
package sample17_01;
public class Student extends Member {
private String studentId;
public Student(int id, String name, String studentId){
super(id ,name);
this.studentId = studentId;
}
public double discount(){
return 0.2;
}
public String getStudentId() {
return studentId;
}
}
コレが継承したプログラムです.
ちょっとわかりにくいと思うので図で説明します。
継承を意味するのは、2行目のextendsキーワード
extendsは特定のクラスを継承するという宣言で、
extends Member と書くだけでMemberクラスを継承する意味になります。
studentクラスに書くのは、コンストラクタを除くとつかしたメンバだけ。
Menberクラスのメンバはコンパイル時に自動的に取り込まれるので書く必要はないです。
次の図で確認してみますwww
今回はここまでにしておきますwww
次回はサブクラスのコンストラクタと継承ツリーについて・・・
こりゃ~確実に年内終わらんわwww
ここまでご覧いただきありがとうございました。
参考書は__________________________________
川場 隆 Kawaba Takashi
秀和システム
______________________________________
BY マんタ