スーパークラスのメンバへのアクセス
広告
ここではスーパークラスで定義されたメンバ変数やメンバメソッドへのアクセスについて確認していきます。
まず下記のようなクラスを作成します。Carクラスがスーパークラス、SoarerクラスはCarクラスを継承しています。
class Car{ int speed = 0; public void accele(){ speed += 5; } public void brake(){ speed -= 5; } } class Soarer extends Car{ boolean roofOpenFlag = false; public void openRoof(){ roofOpenFlag = true; } public void closeRoof(){ roofOpenFlag = true; } }
次にSoarerクラスのオブジェクトを作成します。
class ctest11{ public static void main(String args[]){ Soarer soarer = new Soarer(); } }
Soarerクラスのオブジェクトは、Soarerクラス名で定義されたメソッドを実行したり、変数を参照することができます。
class ctest11{ public static void main(String args[]){ Soarer soarer = new Soarer(); soarer.openRoof(); if (soarer.roofOpenFlag){ System.out.println("屋根が開いています"); }else{ System.out.println("屋根が閉じています"); } } }
またスーパークラスであるCarクラスのメソッドを実行したり変数を参照する事も可能です。
class ctest11{ public static void main(String args[]){ Soarer soarer = new Soarer(); soarer.openRoof(); if (soarer.roofOpenFlag){ System.out.println("屋根が開いています"); }else{ System.out.println("屋根が閉じています"); } soarer.accele(); System.out.println("現在の速度は" + soarer.speed + "キロです"); } }
このようにあるクラスを継承したクラスは、自分自身で定義されたものの他に、継承したスーパークラスのメソッドを実行したりメンバ変数を参照することが可能です。
サンプルプログラム
では実際に試してみましょう。
class ctest11{ public static void main(String args[]){ Soarer soarer = new Soarer(); soarer.openRoof(); if (soarer.roofOpenFlag){ System.out.println("屋根が開いています"); }else{ System.out.println("屋根が閉じています"); } soarer.accele(); System.out.println("現在の速度は" + soarer.speed + "キロです"); } } class Car{ int speed = 0; public void accele(){ speed += 5; } public void brake(){ speed -= 5; } } class Soarer extends Car{ boolean roofOpenFlag = false; public void openRoof(){ roofOpenFlag = true; } public void closeRoof(){ roofOpenFlag = true; } }
実際に実行した結果は下記の通りです。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。