継承 【Javaのサンプルコード】

Print Friendly, PDF & Email

ここでは、当社の新人研修受講者に向けて、Javaのサンプルコードを紹介しています。

継承とコンストラクタ

以下のプログラムの結果をみてなぜ、そうなるのか説明してください。

class Car {

    public String type = "M ";

    public Car() {
        System.out.print("Ordinary Car ");
    }
}

public class LuxuryCar extends Car {

    public LuxuryCar() {
        System.out.print("Luxury Car ");
    }

    void go() {
        type = "L ";
        System.out.print(super.type);
    }

    public static void main(String[] args) {
        new LuxuryCar();
    }
}

 

ヒント:子コンストラクタで親コンストラクタが呼ばれていない場合は、引数なしの親コンストラクタが自動で呼び出されます。

継承とメソッド

次のプログラムはコンパイルできるか? できないとすればなぜか?

class Sample {
    public static void main(String[] args) {
        SubClass obj = new SubClass();
        obj.method();
    }
}

class SuperClass{
    public void method(){
        System.out.println("this is a super class");
    }
}

class SubClass extends SuperClass{
    void method(){
        System.out.println("this is a sub class");
    }
}