1. 程式人生 > >java ——定義一個抽象的"Role"類,有姓名,年齡,性別等成員變數.

java ——定義一個抽象的"Role"類,有姓名,年齡,性別等成員變數.

  • 定義一個抽象的"Role"類,有姓名,年齡,性別等成員變數 1)要求儘可能隱藏所有變數(能夠私有就私有,能夠保護就不要公有), 再通過GetXXX()和SetXXX()方法對各變數進行讀寫。具有一個抽象的play()方法, 該方法不返回任何值,同時至少定義兩個構造方法。Role類中要體現出this的幾種用法。 2)從Role類派生出一個"Employee"類,該類具有Role類的所有成員(構造方法除外), 並擴充套件salary成員變數,同時增加一個靜態成員變數“職工編號(ID)”。 同樣要有至少兩個構造方法,要體現出this和super的幾種用法,還要求覆蓋play()方法, 並提供一個final sing()方法。 3)“Manager"類繼承"Employee"類,有一個final成員變數"vehicle” 在main()方法中製造Manager和Employee物件,並測試這些物件的方法。
abstract class Role {
    private String name;
    private int age;
    private String sex;
    public Role(String name, int age, String sex) {
        this.name = name;
        this.age = age;
        this.sex = sex;
    }

    public Role(String name, int age) {
        this.name = name;
        this.age = 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 String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
    public abstract void play();
}

class Employee extends Role {
    private double salary;
    private static String ID;
    
    public Employee() {
        super("張三",20,"男");
        System.out.println("Employee的無參構造");
    }

    public Employee(String name,int age,String sex,double salary) {
        super(name,age,sex);
        this.salary = salary;
    }

    public void play() {
        System.out.println(super.getName()+"在寂寞的玩LOL");
    }
    public final void sing() {
        System.out.println(super.getName()+"在寂寞的唱歌");
    }

}

class Manager extends Employee {
    // 賓士
    public static final String vehicle = "Benz";
}



public class Test {
    public static void main(String[] args) {
        Role role = new Employee();
        role.play();
        Employee employee = (Employee) role;
        employee.sing();
        Manager manager = new Manager();
        System.out.println(Manager.vehicle);

    }
}