c#代码编写 设计一个普通职工类employee 其工资为基本工资¥5000加上工龄工资每年增加¥100,从employee类派生出一个本科生类uemployee,其工资为普通职工的1.5倍,要求计算工资采用虚方法实现,并写出main方法在控制台中进行的有关数据测试
时间: 2024-03-15 13:47:24 浏览: 23
以下是一个实现普通职工类employee和本科生类uemployee的C#代码示例,其中采用了虚方法实现计算工资的功能:
```
using System;
class employee
{
protected string name; // 姓名
protected int age; // 年龄
protected int years; // 工龄
public employee(string name, int age, int years)
{
this.name = name;
this.age = age;
this.years = years;
}
public virtual double CalculateSalary()
{
double salary = 5000 + years * 100; // 计算工资
return salary;
}
}
class uemployee : employee
{
public uemployee(string name, int age, int years) : base(name, age, years)
{
}
public override double CalculateSalary()
{
double salary = base.CalculateSalary() * 1.5; // 计算工资
return salary;
}
}
class Program
{
static void Main(string[] args)
{
employee emp1 = new employee("张三", 25, 3);
Console.WriteLine("普通职工{0}的工资为:¥{1}", emp1.name, emp1.CalculateSalary());
employee emp2 = new uemployee("李四", 28, 5);
Console.WriteLine("本科生{0}的工资为:¥{1}", emp2.name, emp2.CalculateSalary());
Console.ReadLine();
}
}
```
在上面的代码中,我们定义了一个普通职工类employee和一个本科生类uemployee,其中本科生类继承自普通职工类。在普通职工类中,我们实现了一个虚方法CalculateSalary,用于计算工资;在本科生类中,我们重写了CalculateSalary方法,实现了计算本科生工资的逻辑。
在Main方法中,我们创建了一个普通职工对象emp1和一个本科生对象emp2,并分别调用它们的CalculateSalary方法来计算工资。由于本科生类重写了CalculateSalary方法,因此emp2对象的CalculateSalary方法会调用本科生类中的实现。最后,我们将计算得到的工资打印到控制台上。
需要注意的是,我们在普通职工类中将CalculateSalary方法标记为虚方法,以便本科生类可以重写它。在本科生类中,我们使用了base关键字来调用基类的CalculateSalary方法,然后在其基础上乘以1.5来计算本科生的工资。