我有3个类,两个继承自1:
public class Employee {
private virtual double getBonus() { ... }
private virtual double getSalary() { ... }
}
public class Nepotism : Employee {
private double getBonus() { ... }
}
public class Volunteer : Employee {
private double getSalary() { ... }
}
Run Code Online (Sandbox Code Playgroud)
所以问题是有时会有一个志愿者获得裙带关系奖金 - 有没有办法编写构造函数以允许覆盖/嵌套基类,如下所示:
Employee Bill = new Volunteer(new Nepotism());
Run Code Online (Sandbox Code Playgroud)
我想的是:
public class Volunteer : Employee {
private Employee _nest;
public Volunteer(Employee nest)
: base() {
_nest = nest;
// now what?
}
}
Run Code Online (Sandbox Code Playgroud)
基本上我希望一些对象具有来自两个类的覆盖.
我想避免编写覆盖方法来检查嵌套类.
getSalary() {
return (nest != null) ? nest.salary : salary; // I want to avoid this if I can
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?我是在正确的轨道上吗?我脱轨了吗?
| 归档时间: |
|
| 查看次数: |
1148 次 |
| 最近记录: |