📄 class1.cs
字号:
using System;
namespace VirtualsInCtors
{
class Employee
{
public string name;
public Employee(string name)
{
this.name = name;
Console.Write("Employee.CalculatePay:\n\t");
CalculatePay();
}
public virtual void CalculatePay()
{
Console.WriteLine(
"Employee.CalculatePay called for {0}",
name);
}
}
class SalariedEmployee : Employee
{
public decimal salary;
public SalariedEmployee (string name, decimal salary)
: base(name)
{
this.salary = salary;
Console.Write("SalariedEmployee.CalculatePay:\n\t");
CalculatePay();
}
public override void CalculatePay()
{
Console.WriteLine(
"{0}, SalariedEmployee, salary={1:C}",
name, salary);
}
}
class ContractEmployee : Employee
{
public double rate;
public ContractEmployee(string name, double rate)
: base(name)
{
this.rate = rate;
Console.Write("ContractEmployee.CalculatePay:\n\t");
CalculatePay();
}
public override void CalculatePay()
{
Console.WriteLine(
"{0}, ContractEmployee, rate={1:C}",
name, rate);
}
}
class Test
{
protected Employee[] employees;
[STAThread]
static void Main(string[] args)
{
Employee[] employees = new Employee[2];
employees[0] = new ContractEmployee(
"Adam Barr", 123.45);
employees[1] = new SalariedEmployee(
"Max Benson", 67890m);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -