4.编写一个控制台程序,实现类的继承,基类实现员工的基本信息属性,子类实现员工的基本技能,然后在主程序调用基类和子类实现存储和检索该员工的信息等,请通过以下抽象类抽象方法的方式实现该程序,源程序:
时间: 2024-12-18 18:22:16 浏览: 6
在Java中,你可以使用抽象类和接口来实现类的继承以及多态性。这里是一个简单的例子,展示了如何创建一个抽象基类(Employee)和一个具体的子类(SpecializedEmployee),其中基类包含基本的员工信息,子类扩展了特定的技能:
```java
// 定义一个抽象的Employee类,包含基本信息属性和操作方法
abstract class Employee {
private String name;
private int id;
public Employee(String name, int id) {
this.name = name;
this.id = id;
}
// 抽象方法,用于获取和设置基本信息
abstract void displayInfo();
// 具体的方法实现,打印基本信息
protected void printBasicInfo() {
System.out.println("Name: " + name);
System.out.println("ID: " + id);
}
}
// 创建一个继承自Employee的子类SpecializedEmployee,添加特定技能
class SpecializedEmployee extends Employee {
private String skill;
public SpecializedEmployee(String name, int id, String skill) {
super(name, id);
this.skill = skill;
}
@Override
// 实现displayInfo方法,包括具体技能
void displayInfo() {
printBasicInfo();
System.out.println("Skill: " + skill);
}
}
public class Main {
public static void main(String[] args) {
// 创建SpecializedEmployee实例并存储信息
SpecializedEmployee specializedEmployee = new SpecializedEmployee("John Doe", 12345, "Programming");
specializedEmployee.displayInfo();
// 存储和检索信息,因为Employee是抽象的,所以不能直接创建Employee对象
// 但可以通过子类引用调用displayInfo方法
Employee employee = (Employee) specializedEmployee; // 类型转换
employee.displayInfo(); // 输出所有信息,包括技能
}
}
```
在这个例子中,`Main`类的`main`方法创建了一个`SpecializedEmployee`对象,并将其赋值给`Employee`类型的变量`employee`。这样,在调用`displayInfo`方法时,由于类型转换,子类的方法会被调用,从而显示全部信息。
阅读全文