现在有员工类Employee、程序员类Programmer 、项目经理类PM 员工类的成员变量:编号、姓名、年龄、薪资 成员方法:getInfo(打印信息) 程序员类特有属性:编程(Java) 项目经理属性:奖金
时间: 2023-03-30 08:03:16 浏览: 165
回答:好的,这是一个关于员工类、程序员类和项目经理类的问题。员工类有编号、姓名、年龄和薪资这些成员变量,还有一个打印信息的成员方法getInfo。程序员类特有的属性是编程语言Java,而项目经理类则有奖金属性。
相关问题
写一个子类 程序员 成员变量 工资 姓名 年龄 项目分红 成员方法 工作(打印:写代码) 吃饭 子类 经理 成员变量 工资 姓名 年龄 管理奖金 成员方法 工作(打印:管理员工) 吃饭
好的,下面是代码实现:
```python
class Programmer:
def __init__(self, name, age, salary, bonus):
self.name = name
self.age = age
self.salary = salary
self.bonus = bonus
def work(self):
print("写代码")
def eat(self):
print("吃饭")
class Manager(Programmer):
def __init__(self, name, age, salary, bonus, management_bonus):
super().__init__(name, age, salary, bonus)
self.management_bonus = management_bonus
def work(self):
print("管理员工")
def eat(self):
print("吃饭")
```
在这里,我们定义了两个类:`Programmer`(程序员)和`Manager`(经理),其中`Manager`是`Programmer`的子类。`Programmer`类包含姓名,年龄,工资和项目分红等成员变量,以及工作和吃饭等成员方法。`Manager`类继承了`Programmer`类的所有成员变量和方法,并添加了一个管理奖金的成员变量和一个管理工作的工作成员方法。在这里,我们使用了`super()`函数来调用父类的构造函数,以便初始化父类的成员变量。
用C#写三个类,分别为经理类(Manager)、员工类(Employee)、和程序员类(Programmer)要求各写一个方法,经理十一点打卡,员工9点打卡,程序员不打卡,用多态实现
在 C# 中,我们可以创建一个多态的结构来实现这个场景。首先,我们创建一个抽象基类 `Employee`,然后分别派生出 `Manager` 和 `Programmer` 类,每个类都会覆盖基类中的 `ClockIn()` 方法来体现各自的行为。以下是代码示例:
```csharp
using System;
// 抽象基类 Employee
public abstract class Employee
{
public abstract void ClockIn();
}
// 经理类 Manager,继承自 Employee
public class Manager : Employee
{
public override void ClockIn()
{
Console.WriteLine("经理在11点打卡");
}
}
// 程序员类 Programmer,也继承自 Employee
public class Programmer : Employee
{
public override void ClockIn()
{
Console.WriteLine("程序员不需要打卡");
}
}
// 员工类 Employee 的通用版本,这里可以看作是一种泛指,实际应用中可能有具体的实现
public class EmployeeBase : Employee
{
public override void ClockIn()
{
Console.WriteLine($"员工在正常时间打卡,通常为9点");
}
}
// 主函数演示多态的应用
public static void Main(string[] args)
{
Employee manager = new Manager();
Employee programmer = new Programmer();
EmployeeBase employee = new EmployeeBase();
manager.ClockIn(); // 输出 "经理在11点打卡"
programmer.ClockIn(); // 输出 "程序员不需要打卡"
employee.ClockIn(); // 输出 "员工在正常时间打卡,通常为9点"
}
```
阅读全文