継承は、「引き継ぐ」と言う意味があります。
クラスの継承とは、
その名の通りクラスの機能(メンバ変数、メンバ関数など)を
引き継いで新しいクラスを作ると言う意味です。
継承はインヘリタンスと呼ぶ場合もあります。
一般的な使い方としては、
基本的な機能を有する基本クラスを作っておき、
派生クラスでは、その基本クラスを継承して、
基本的な機能を取り込み、
それに加えて、新しく独自の機能を盛り込む。と言った感じです。
引継ぎ元となるクラスを
基本クラスや基底クラス、ベースクラス、
親クラス、スーパークラスなどと呼び、
そのクラスを引き継いで新しく作るクラスを
派生クラスやサブクラス、子クラスなどと呼びます。
派生クラスの定義では、
基本クラスで定義されていたメンバ変数やメンバ関数などは、
一切書く必要はなく、追加機能の実装だけに専念できるため、
非常にスマートな記述が可能です。
記述例
/********** 基本クラス **********/
class kihon {
public int data1;
public void show_data1() {
System.out.printf("data1は%dです\n", data1);
}
}
/********** 派生クラス **********/
class hasei extends kihon { // 基本クラスkihonを継承して
// 派生クラスhaseiを定義
public int data2;
public void show_data2() {
System.out.printf("data2は%dです\n", data2);
}
}
public class Cmain {
public static void main(String[] args) {
/***** 基本クラスの動作 *****/
kihon a = new kihon();
a.data1 = 10;
a.show_data1();
/***** 派生クラスの動作 *****/
hasei b = new hasei();
b.data1 = 10; // 基本クラスメンバ
b.show_data1(); // 基本クラスメンバ
b.data2 = 50; // 派生クラスメンバ
b.show_data2(); // 派生クラスメンバ
}
}
このプログラム例では、基本クラスkihonとその派生クラスhaseiの
簡単な継承例です。
基本クラスkihonのメンバ変数data1は、
継承によって、派生クラスhasei内にも存在する事になります。
同じく、基本クラスのメンバ関数は、全て継承されるので、
派生クラスのメンバ関数として使う事ができます。