、某公司有各类员工,定义一个员工类(Employee),该类具有员工的姓名(Name)和基本薪金(Salary)等属性;并有一个虚方法(CalSalary)用于计算并输出员工的总薪金。
对不同的员工,薪金的计算方法不同。
(1)定义一个继承自员工类的销售员类(SalesPerson),销售员除了员工类的基本薪金外,还有一个销售提成属性(SaleCommission)。现在在派生类中重新编写基类的虚方法(CalSalary),计算并输出销售员类的总薪金。
(2)定义一个计件工人类(PiecePerson),其继承自员工类,计件工人除了员工类的基本薪金外,还有每件工资(PerPay)和生产的产品件数(Number)属性,在派生类中重新编写基类的虚方法(CalSalary
```c
namespace 实验3_2
{
class Employee
{
public string name;
public double salary;
public string Name
{
get { return name; }
set { name=value; }
}
public double Salary
{
get { return salary; }
set { salary = value; }
}
public virtual void CalSalary()
{
Console.WriteLine("请输入Name:");
Name = Convert.ToString(Console.ReadLine());
Console.WriteLine("基本工资:");
Salary = Convert.ToDouble(Console.ReadLine());
}
}
class SalesPerson : Employee
{
public double saleCommission;
public double SaleCommission
{
get { return saleCommission; }
set { saleCommission = value; }
}
public override void CalSalary()
{
Console.Write("销售员类");
base.CalSalary();
Console.WriteLine("销售提成工资:");
SaleCommission = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("总薪资{0}:", SaleCommission+ Salary);
}
}
class PiecePerson : Employee
{
public double perPay ;
public double number;
public double PerPay
{
get { return perPay; }
set { perPay= value; }
}
public double Number
{
get { return number; }
set { number = value; }
}
public override void CalSalary()
{
Console.Write("计件工人类");
base.CalSalary();
Console.WriteLine("每件工资:");
PerPay = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("生产的产品:");
Number = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("总薪资{0}:", PerPay * Number + Salary);
}
}
class Program
{
static void Main(string[] args)
{
SalesPerson a = new SalesPerson();
a.CalSalary();
PiecePerson b = new PiecePerson();
b.CalSalary();
}
}
}