day09--继承练习

This commit is contained in:
xx
2026-09-23 15:48:30 +08:00
parent 006ef97d55
commit 8f2bedfa28
4 changed files with 151 additions and 0 deletions
@@ -0,0 +1,32 @@
package com.inmind.extends_this_super05;
//定义职员Clerk类继承Employee类,包含属性:经理,重写show方法,在父类实现基础之上增加展示经理信息。
public class Clerk extends Employee{
private Manager manager;
public Clerk() {
super();
}
public Clerk(String name, int id, String department) {
super(name, id, department);
}
public Clerk(String name, int id, String department,Manager manager) {
super(name, id, department);
this.manager = manager;
}
public Manager getManager() {
return manager;
}
public void setManager(Manager manager) {
this.manager = manager;
}
//重写show方法,在父类实现基础之上增加展示经理信息
@Override
public void show() {
super.show();//沿袭
System.out.println("我的经理是:"+this.manager.getName());
}
}
@@ -0,0 +1,44 @@
package com.inmind.extends_this_super05;
//定义员工Employee类。包含属性:姓名,工号,部门,成员方法show,方法内展示员工信息。
public class Employee {
private String name;
private int id;
private String department;
public Employee() {
}
public Employee(String name, int id, String department) {
this.name = name;
this.id = id;
this.department = department;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getDepartment() {
return department;
}
public void setDepartment(String department) {
this.department = department;
}
public void show(){
System.out.println("我叫"+this.name+",我的工号是"+this.id+",我是"+this.department+"部门的");
}
}
@@ -0,0 +1,39 @@
package com.inmind.extends_this_super05;
import java.util.ArrayList;
//定义经理Manager类继承Employee类,包含属性:职员,重写show方法,在父类实现基础之上增加展示职员信息。
public class Manager extends Employee{
//职员们
private ArrayList<Clerk> clerkList;
public Manager() {
super();
}
public Manager(String name, int id, String department) {
super(name, id, department);
}
//对经理的独有属性进行操作
public ArrayList<Clerk> getClerkList() {
return clerkList;
}
public void setClerkList(ArrayList<Clerk> clerkList) {
this.clerkList = clerkList;
}
//重写show方法,在父类实现基础之上增加展示职员信息。
@Override
public void show() {
super.show();//沿袭父类功能
//展示自己的职员们
System.out.println("我的下属有:");
for (int i = 0; i < clerkList.size(); i++) {
Clerk clerk = clerkList.get(i);
System.out.println(clerk.getName());
}
}
}
@@ -0,0 +1,36 @@
package com.inmind.extends_this_super05;
import java.util.ArrayList;
/*
编写步骤:
1. 定义员工Employee类。包含属性:姓名,工号,部门,成员方法show,方法内展示员工信息。
2. 定义经理Manager类继承Employee类,包含属性:职员,重写show方法,在父类实现基础之上增加展示职员信息。
3. 定义职员Clerk类继承Employee类,包含属性:经理,重写show方法,在父类实现基础之上增加展示经理信息。
*/
public class Test09 {
public static void main(String[] args) {
//创建一个经理
Manager manager = new Manager("张三", 1, "开发部");
//招3个员工
Clerk clerk1 = new Clerk("李四", 10, "开发部",manager);
Clerk clerk2 = new Clerk("王五", 11, "开发部",manager);
Clerk clerk3 = new Clerk("赵六", 12, "开发部",manager);
/*clerk1.setManager(manager);
clerk2.setManager(manager);
clerk3.setManager(manager);*/
//创建一个集合,保存当前3个员工,隶属于经理管理
ArrayList<Clerk> list = new ArrayList<>();
list.add(clerk1);
list.add(clerk2);
list.add(clerk3);
manager.setClerkList(list);
//经理展示下自己的下属
manager.show();
//职员介绍下自己的经理
clerk1.show();
}
}