Method Overriding

void main() {
  
  
  // Method overidding 

  var manager1 = Manager();
  
  
  manager1.id =1;
  manager1.firstname="John";
  manager1.lastname="Doe";
  manager1.dayworked=30;
  
  manager1.project ="Alpha";
  
  print(manager1.salary(20));

  
  
  
  
}

class Employee {
  int id;
  int dayworked;
  String firstname;
  String lastname;

  String fullname() {
    return this.firstname + " " + this.lastname;
  }

  int salary(int perDaywage) {
    return (this.dayworked * perDaywage);
  }
}




// Manager Class 


class Manager extends Employee {
  
  
  //property 
   String project;
 
  
  //Method 
  
  String manageproject(){
    
    return "Managing project " + " " + this.project; 
  }
  
  
   int salary(int perDaywage) {
    return ((this.dayworked * perDaywage)+30);
  }
  
  
}


Here in the child class , the return type and the argument datatype of the method is changed from "int" to "double" , so the compiler shows an error

You can visualise method overriding like below -

Last updated

Was this helpful?