1. 程式人生 > >抽象類練習

抽象類練習

定義一個抽象的"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 String getName(){
        return this.name;
    }
    public void setName(String name){
        this.name=name;
    }
    public int getAge(){
        return this.age;
    }
    public void setAge(int age){
        this.age=age;
    }
    public String getSex(){
        return this.sex;
    }
    public void setSex(String sex){
        this.sex=sex;
    }
    abstract void play();
    public Role(){
       System.out.println("nihaoma");
    }
    public Role(String name,int age){
      this.name=name;
      this.age=age;
    }
}
class Employee extends Role{
    private int salary;
    private static int ID;
    public int getSalary(){
        return this.salary;
    }
    public void setSalary(int salary){
        this.salary=salary;
    }
    public int getID(){
        return ID;
    }
    public void setID(int ID){
        this.ID=ID;
    }
    public Employee(){
        System.out.println("Employee的無參構造");
    }
    public Employee(int salary){
        super();
        this.salary=salary;
        System.out.println("Employee的有參構造");
    }
    public final void sing(){
        System.out.println("我在唱歌");
    }
    public void play(){
    System.out.println("*********");
}
}
class Manager extends Employee {
    public final void vehicle(){
        System.out.println("我很開心");
    }
}
public class mytest{
    public static void main(String[]args){
    Employee e=new Employee();
    e.play();
    e.sing();
    Manager m=new Manager();
    m.vehicle();
}
}