スーパークラスから拡張したクラスを作ってみます。
下記のようなテストコードを書いて実行してみます。
[c]
public class SuperClassTest{
public static void main(String[] args) {
//オブジェクトのインスンタンスを生成する
TestClassChild tcc = new TestClassChild();
tcc.PrintTextC();
tcc.PrintTextP();
}
}
class TestClassChild extends TestClassParent
{
TestClassChild() {
//引数なしコンストラクタ用
}
void PrintTextC() {
System.out.print("PrintTextC !! \n");
}
void PrintTextP() {
System.out.print("PrintTextP !! \n");
}
}
class TestClassParent
{
TestClassParent() {
//引数なしコンストラクタ用
}
void PrintTextP() {
System.out.print("PrintTextP !! \n");
}
}
[/c]
メインの処理の「SuperClassTest」のクラスの中から「TestClassChild」のクラスのインスタンスを生成して、そのTestClassChild内のメソッドを呼びました。
結果は
[c]
PrintTextC !!
[/c]
という表示がされ、TestClassChild内のメソッドを呼べていることがわかります。
次にに、TestClassChildクラスが継承している「TestClassParent」クラスのメソッドも、同じTestClassChildインスタンス(ここではtccという名前)から呼んでみました。
すると結果は
[c]
PrintTextP !!
[/c]
と表示され、継承元の「PrintTextP」メソッドが正しく動作していることがわかります。
今回の例はシンプルな継承の例ですが、一つの親クラスから、多数の子クラスを派生させることも可能なので、後ほどつめて実験してみようと思います。