// Role类
public abstract class Role {
    private String name;
    private int age;
    private String gender;

    public Role() {}

    public Role(String name, int age, String gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
    }

    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 getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public abstract void play();
}

// Employee类
public class Employee extends Role {
    private static int IDCounter = 1;
    private int ID;
    private double salary;

    public Employee() {
        this.ID = IDCounter++;
    }

    public Employee(String name, int age, String gender, double salary) {
        super(name, age, gender);
        this.ID = IDCounter++;
        this.salary = salary;
    }

    public int getID() {
        return ID;
    }

    public double getSalary() {
        return salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }

    @Override
    public void play() {
        System.out.println("Employee is playing.");
    }

    public final void sing() {
        System.out.println("Employee is singing.");
    }
}

// Manager类
public class Manager extends Employee {
    private final String vehicle;

    public Manager(String name, int age, String gender, double salary, String vehicle) {
        super(name, age, gender, salary);
        this.vehicle = vehicle;
    }

    public String getVehicle() {
        return vehicle;
    }
}

// 测试类
public class Main {
    public static void main(String[] args) {
        Employee employee1 = new Employee("John", 25, "Male", 5000);
        Employee employee2 = new Employee("Lisa", 30, "Female", 6000);
        Manager manager1 = new Manager("Tom", 35, "Male", 8000, "Car");

        System.out.println("Employee 1 ID: " + employee1.getID());
        System.out.println("Employee 2 ID: " + employee2.getID());
        System.out.println("Manager 1 ID: " + manager1.getID());
        System.out.println("Manager 1 Vehicle: " + manager1.getVehicle());

        employee1.play();
        employee1.sing();
        manager1.play();
        manager1.sing(); // final方法不能被子类重写
    }
}
Java 抽象类和继承示例:Role、Employee 和 Manager 类

原文地址: https://www.cveoy.top/t/topic/pUHr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录