Example
This example definesEmployeeAnd a base class namedSalesemployee.SalesemployeeClass includes an additional attributeSalesbonus, And rewrite the method.CalculatepayTo take this attribute into account.
Codes
Using system;
Class testoverride
{
Public class employee
{
Public string name;
// Basepay is defined as protected, so that it may be
// Accessed only by this class and derrived classes.
Protected decimal basepay;
// Constructor to set the name and basepay values.
Public Employee (string name, decimal basepay)
{
This. Name = Name;
This. basepay = basepay;
}
// Declared virtual so it can be overridden.
Public Virtual decimal calculatepay ()
{
Return basepay;
}
}
// Derive a new class from employee.
Public class salesemployee: Employee
{
// New field that will affect the base pay.
Private decimal salesbonus;
// The constructor cballs the base-class version, and
// Initializes the salesbonus field.
Public salesemployee (string name, decimal basepay,
Decimal salesbonus): Base (name, basepay)
{
This. salesbonus = salesbonus;
}
// Override the calculatepay Method
// To take bonus into account.
Public override decimal calculatepay ()
{
Return basepay + salesbonus;
}
}
Static void main ()
{
// Create some new employees.
Salesemployee employee1 = new salesemployee ("Alice ",
1000,500 );
Employee employee2 = new employee ("Bob", 1200 );
Console. writeline ("employee" + employee1.name +
"Earned:" + employee1.calculatepay ());
Console. writeline ("employee" + employee2.name +
"Earned:" + employee2.calculatepay ());
}
}
Output
Employee Alice earned: 1500
Employee Bob earned: 1200