問題1 プロジェクト名:Lie1
下の出力結果が得られるように、クラスPersonのサブクラスHonestPersonとLiePersonを作成せよ。どちらもメソッドshowMeが呼ばれると名前と年齢を出力するが、年齢はLiePersonのオブジェクトでは、実際より5歳若く答える。
[クラスPerson]
public abstract class Person { private String name; private int age; 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; } public abstract void showMe(); }
[クラスMain]
public class Main { public static void main(String[] args) { Person a = new HonestPerson(); a.setName("正直太郎"); a.setAge(20); a.showMe(); Person b = new LiePerson(); b.setName("嘘つき次郎"); b.setAge(28); b.showMe(); } }
・出力結果
正直太郎 20才
嘘つき次郎 23才
問題2 プロジェクト名:Lie2
問題1と同様の出力結果が得られるようにする。ただしクラスMainについては以下のように変更してある。
[クラスMain]
public class Main { public static void main(String[] args) { Person a = new HonestPerson("正直太郎", 20); a.showMe(); Person b = new LiePerson("嘘つき次郎", 28); b.showMe(); } }