一般用super要不就是传参数过去,要不就是调用父类的方法或属性。
比如装饰模式。
Project employe = new Employe(); //程序员
Project managerA = new ManagerA(employe); //项目经理A 将手下的程序员当成参数传过去
public class ManagerA extends Manager //继承通用项目经理
public ManagerA(Project project) {
super(project); //跳到下面去了。因为编码是通用的工作所以不在具体的项目经理A这里实现
}
public class Manager implements Project
private Project project;
public Manager(Project project) {
this.project = project;
}
/**
* 模板:定义项目经理自己的事情
*/
public void startWork() {
//早期工作
doEarlyWork();
// 程序员编码
project.doCoding(); //根据传进来的程序员对象进行编码
// 收尾工作
doEndWork();
}
//在程序员编码的情况下进行前期后期收尾工作的装饰。
managerA.doCoding();
温馨提示:答案为网友推荐,仅供参考