LoginSignup
0
0

More than 1 year has passed since last update.

JAVA 継承

Posted at
Constant2301.java

package lesson23;

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

Chef2301.java
package lesson23;

public class Chef2301 extends Worker2301 {

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

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

Display2301..java
package lesson23;

public class Display2301 {

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

}

Police2301.java

package lesson23;

public class Police2301 extends Worker2301 {

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

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


Sample2301.java

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);


     }
}

Teacher.java

package lesson23;

public class Teacher2301 extends Worker2301 {

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

    }

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

Worker2301.java

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;
    }
}

使われた用語

0
0
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0