JAVA的继承


package lesson23;

public class Constant2301 {
 public static final String POLICE = "警察官";
 public static final String TEACHER = "教師";
 public static final String CHEF = "料理人";
}

package lesson23;

public class Chef2301 extends Worker2301 {

    public Chef2301(String name, int age) {
        super(Constant2301.CHEF, name, age);
    }

    public void doWork() {
        System.out.println("食事を作ります。");
    }
}

package lesson23;

public class Display2301 {

    public static void displayWorkers(Worker2301[] workers) {
        for(Worker2301 worker : workers) {
            worker.showIntroduction();
            worker.doWork();
        }
    }

}


package lesson23;

public class Police2301 extends Worker2301 {

    public Police2301(String name, int age) {
        super(Constant2301.POLICE, name, age);
    }

    public void doWork() {
        System.out.println("地域や人々の安全を守ります。");
    }
}



package lesson23;

public class Sample2301 {
     public static void main(String[] args) {

        Worker2301[] workers = new Worker2301[3];


        // サブクラスのオブジェクトを配列に追加
         // 警察官クラスのオブジェクトを生成して、コンストラクタを呼び出す
         workers[0] = new Police2301("田中", 28);
         // 教師クラスのオブジェクトを生成して、コンストラクタを呼び出す
         workers[1] = new Teacher2301("佐藤", 53);
         // 料理人クラスのオブジェクトを生成して、コンストラクタを呼び出す
         workers[2] = new Chef2301("鈴木", 31);
         // 出力用クラスに各オブジェクト情報を渡す
         Display2301.displayWorkers(workers);


     }
}


package lesson23;

public class Teacher2301 extends Worker2301 {

    public Teacher2301(String name, int age) {
        super(Constant2301.TEACHER, name, age);

    }

    public void doWork() {
        System.out.println("知識を教えます。");
    }
}


package lesson23;

public abstract class Worker2301 {

    protected String job;
    protected String name;
    protected int age;

    Worker2301(String job, String name, int age){

        this.job = job;
        this.name = name;
        this.age = age;

    }

    public void showIntroduction() {
        System.out.println("名前は" + name + "、年齢は" + age + "歳、職業は" + job + "です。");
    }

    public abstract void doWork();

    public String getJob() {
        return job;
    }

    public void setJob(String job) {
        this.job = job;
    }



    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

被使用的术语 (Chinese: de

广告
将在 10 秒后关闭
bannerAds