Override virtual functions : Virtual : Class C# Examples


C# Examples » Class » Virtual »

 

Override virtual functions









    
using  System;

class  Employee
{
        public  Employee(string  name,  float  billingRate)
        {
                this.name  =  name;
                this.billingRate  =  billingRate;
        }
        //  function  now  virtual
        virtual  public  float  CalculateCharge(float  hours)
        {
                return(hours  *  billingRate);
        }
        //  function  now  virtual
        virtual  public  string  TypeName()
        {
                return("Employee");
        }
        
        private  string  name;
        protected  float  billingRate;
}

class  Manager:  Employee
{
        public  Manager(string  name,  float  billingRate)  :
        base(name,  billingRate)
        {
        }
        //  overrides  function  in  Employee
        override  public  float  CalculateCharge(float  hours)
        {
                if  (hours  <  1.0F)
                hours  =  1.0F;                //  minimum  charge.
                return(hours  *  billingRate);
        }
        //  overrides  function  in  Employee
        override  public  string  TypeName()
        {
                return("Civil  Employee");
        }
}
class  Test
{
        public  static  void  Main()
        {
                Employee[]        earray  =  new  Employee[2];
                earray[0]  =  new  Employee("A",  15.50F);
                earray[1]  =  new  Manager("B",  40F);
                
                Console.WriteLine("{0}  charge  =  {1}",
                earray[0].TypeName(),
                earray[0].CalculateCharge(2F));
                Console.WriteLine("{0}  charge  =  {1}",
                earray[1].TypeName(),
                earray[1].CalculateCharge(0.75F));
        }
}
    
   
  
   



Output

Employee charge = 31
Civil Employee charge = 40


HTML code for linking to this page:

Follow Navioo On Twitter

C# Examples

 Navioo Class
» Virtual