・継承のしくみを知る
- 既存のクラスを継承して新しいクラスを作成して、機能を拡張する
- 新しいクラスは、既存クラスのメンバ(変数、メソッド)を受け継ぐ
継承されるクラス(親クラス) ・・・ スーパークラス
新しいクラス(子クラス) ・・・ サブクラス
・クラスを拡張する
- サブクラスの宣言は extends を用いる
<Carクラスを継承して、RacingCarクラスを宣言する>
class RacingCar
extends
Car
// レーシングカークラス(サブクラス)
{
int course;
public RaceingCar(){ //
コンストラクタ
:
}
public void setCourse(int c){ // 追加(拡張)するメソッド
:
}
}
class Car // 車クラス(スーパークラス)
{
int num;
double gas;
public Car(){ // コンストラクタ
:
}
public void show(){
:
}
}
|
- サブクラスはスーパークラスの内容を包含する

・サブクラスのオブジェクトを作成する
- サブクラスのオブジェクト作成は、普通のクラスと同じ方法で行う
RacingCar rc = new RacingCar();
- サブクラスのオブジェクトでは、スーパークラスの変数・メソッドも利用できる
<RacingCarクラスのオブジェクトを作成する>
class Sample1
{
public static void main(String [] args)
{
RacingCar rc = new RacingCar();
rc.setCourse(5);
// サブクラスのメソッドを呼び出す
rc.num =
1234; // スーパークラスの変数
rc.gas =
20.5;
rc.show();
// スーパークラスのメソッドを呼び出す
:
}
}
class RacingCar
extends Car // レーシングカークラス(サブクラス)
{
int course;
public
RaceingCar(){ // コンストラクタ
:
}
public void
setCourse(int c){ //
追加(拡張)するメソッド
:
}
}
class Car // 車クラス(スーパークラス)
{
int num;
double gas;
public Car(){
// コンストラクタ
:
}
public void
show(){
:
}
}
|
・スーパークラスのコンストラクタを呼び出す
- サブクラスのコンストラクタで、最初にスーパークラスのデフォルトコンストラクタが自動的に呼ばれる
・スーパークラスのコンストラクタを指定する
- サブクラスのコンストラクタで super(); を記述してスーパークラスのコンストラクタを呼び出すことができる
- super();
の引数によって呼び出すコンストラクタを選択できる
<Carクラスを継承して、RacingCarクラスを宣言する>
class RacingCar
extends Car
// レーシングカークラス(サブクラス)
{
int course;
public RaceingCar(){ //
コンストラクタ
/* ここでCarクラスのコンストラクタ public Car()
が自動的に呼ばれる */
:
}
:
}
class Car // 車クラス(スーパークラス)
{
int num;
double gas;
public Car(){ // コンストラクタ
:
}
:
}
|
- super(); および this();
は、コンストラクタの最初に記述しなければいけない
|