Java 抽象类和继承示例:Role、Employee 和 Manager 类
// 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方法不能被子类重写
}
}
原文地址: https://www.cveoy.top/t/topic/pUHr 著作权归作者所有。请勿转载和采集!