> For the complete documentation index, see [llms.txt](https://eece.gitbook.io/mist-innovation-club-flutter-course-1/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://eece.gitbook.io/mist-innovation-club-flutter-course-1/dart-fundamentals-1/inheritance/super-keyword-2.md).

# super Keyword -2

### Section 1.1

{% embed url="<https://youtu.be/mGH1jhvf-9E>" %}

{% hint style="success" %}
Whenever you call a child class constructor , there is an implicit call to the parent class constructor . Generally without any modification ,  the default/ no-argument constructor of the parent class get executed&#x20;
{% endhint %}

```dart
void main() {
  
  
  //super keyword -2  
  
  // To call parent class constructor 
  
  
  var manager1 = Manager();
  
  
  manager1.id =1;
  manager1.firstname="John";
  manager1.lastname="Doe";
  manager1.dayworked=30;
  manager1.project ="Alpha";  
  
}

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

  

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

  int salary(int perDaywage) {
    return (this.dayworked * perDaywage);
  }
  
  
  // Constructor 
  
  
    
  Employee(){
    
    
     
     print(" Inside Employee Constructor");
    
  }
  
  
}




// Manager Class 


class Manager extends Employee {
  
  
  //property 
   String project;
 
  
  //Method 
  
  String manageproject(){
    
    return "Managing project " + " " + this.project; 
  }
  
  
  
 // Constructor 
  
  Manager():super(){
    
     print(" Inside Manager constructor");
    
  }
 
 
}

```

![](/files/-MDrYfMJZckwwaIMDp1d)

### Section 1.2

{% embed url="<https://youtu.be/WwkiQv68Lfg>" %}

{% hint style="success" %}
You can pass argument inside the parent class constructor  via passing an argument&#x20;

inside "super( )"&#x20;
{% endhint %}

```dart
void main() {
  
  
  //super keyword -2  
  
  // To call parent class constructor 
  
  
  var manager1 = Manager();
  
  
  manager1.id =1;
  manager1.firstname="John";
  manager1.lastname="Doe";
  manager1.dayworked=30;
  manager1.project ="Alpha";  
  
}

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

  

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

  int salary(int perDaywage) {
    return (this.dayworked * perDaywage);
  }
  
  
  // Constructor 
  
  
    
  Employee(String input){
    
    
     print(input);
     
     print(" Inside Employee Constructor");
    
  }
  
  
}

// Manager Class 


class Manager extends Employee {
  
  
  //property 
   String project;
 
  
  //Method 
  
  String manageproject(){
    
    return "Managing project " + " " + this.project; 
  }
  
  
  
 // Constructor 
  
  Manager():super("foo"){
    
     print(" Inside Manager constructor");
    
  }
  

}

```

![](/files/-MDrcGPXpmxNoipR475Z)

### Section 1.3

{% embed url="<https://youtu.be/9dZpf9VQWJA>" %}

{% hint style="success" %}
You can pass an argument inside the child class constructor , and that argument can be passed into the parent class constructor&#x20;
{% endhint %}

```dart
void main() {
  
  
  //super keyword -2  
  
  // To call parent class constructor 
  
  
  var manager1 = Manager("baz");
  
  
  manager1.id =1;
  manager1.firstname="John";
  manager1.lastname="Doe";
  manager1.dayworked=30;
  manager1.project ="Alpha";  
  
}

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

  

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

  int salary(int perDaywage) {
    return (this.dayworked * perDaywage);
  }
  
  
  // Constructor 
  
  
    
  Employee(String input){
    
    
     print(input);
     
     print(" Inside Employee Constructor");
    
  }
  
  
}




// Manager Class 


class Manager extends Employee {
  
  
  //property 
   String project;
 
  
  //Method 
  
  String manageproject(){
    
    return "Managing project " + " " + this.project; 
  }
  
  
  
 // Constructor 
  
  Manager(String input):super(input){
    
     print(" Inside Manager constructor");
    
  }
  
 
}



```

![](/files/-MDreMvvyvo6fyVOI_lV)

### Section 2.1

{% embed url="<https://youtu.be/NtCz4ecuADg>" %}

![](/files/-MDum9fXJACf2Ckec7OU)

### Section 2.2

{% embed url="<https://youtu.be/6zPVl_47BoY>" %}

```dart
void main() {
  
  
  //super keyword -2  
  
  
  
  
  var manager1 = Manager("Alpha",1,"John","Doe",12);
  
  
//   manager1.id =1;
//   manager1.firstname="John";
//   manager1.lastname="Doe";
//   manager1.dayworked=30;
//   manager1.project ="Alpha";  
  
  
  
  print(manager1.id);
  print(manager1.firstname);
  print(manager1.lastname);
  print(manager1.dayworked);
  print(manager1.project);
  
  
}

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

  

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

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

     print(" Inside Employee Constructor");
    
  }
  
  
}




// Manager Class 


class Manager extends Employee {
  
  
  //property 
   String project;
 
  
  //Method 
  
  String manageproject(){
    
    return "Managing project " + " " + this.project; 
  }
  
  
  
 // Constructor 
  
  Manager(String project,int id,String firstname , String lastname, int dayworked ):super(){
    
    
      
    
      this.project= project;
    
      this.id = id;
    
      this.firstname =firstname;
    
      this.lastname = lastname;
    
      this.dayworked = dayworked;
    
      
     
     print(" Inside Manager constructor");
    
  }
  
  
  

 
}






```

### Section 2.3

{% embed url="<https://youtu.be/faEtOH_6wc4>" %}

![](/files/-MDvnFPU_HjFucGB9wMe)

{% tabs %}
{% tab title="Syntax -1" %}

```dart


void main() {
  
  
  //super keyword -2  
  
  
  
  
  var manager1 = Manager("Alpha",1,"John","Doe",12);
  
  
//   manager1.id =1;
//   manager1.firstname="John";
//   manager1.lastname="Doe";
//   manager1.dayworked=30;
//   manager1.project ="Alpha";  
  
  
  
  print(manager1.id);
  print(manager1.firstname);
  print(manager1.lastname);
  print(manager1.dayworked);
  print(manager1.project);
  
  
}

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

  

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

  int salary(int perDaywage) {
    return (this.dayworked * perDaywage);
  }
  
  
  // Constructor 
  
  
    
  Employee(int id,String firstname , String lastname, int dayworked){
    

      this.id = id; 
    
      this.firstname =firstname;
    
      this.lastname = lastname;
    
      this.dayworked = dayworked;

     print(" Inside Employee Constructor");
    
  }
  
  
}




// Manager Class 


class Manager extends Employee {
  
  
  //property 
   String project;
 
  
  //Method 
  
  String manageproject(){
    
    return "Managing project " + " " + this.project; 
  }
  
  
  
 // Constructor 
  
  Manager(String project,int id,String firstname , String lastname, int dayworked ):super(id,firstname,lastname,dayworked){
    
     
       this.project = project;
     print(" Inside Manager constructor");
    
  }
  
  
  

 
}








```

{% endtab %}

{% tab title="Syntax-2 " %}

```dart
void main() {
  
  
  //super keyword -2  
  
  
  
  
  var manager1 = Manager("Alpha",1,"John","Doe",12);
  
  
//   manager1.id =1;
//   manager1.firstname="John";
//   manager1.lastname="Doe";
//   manager1.dayworked=30;
//   manager1.project ="Alpha";  
  
  
  
  print(manager1.id);
  print(manager1.firstname);
  print(manager1.lastname);
  print(manager1.dayworked);
  print(manager1.project);
  
  
}

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

  

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

  int salary(int perDaywage) {
    return (this.dayworked * perDaywage);
  }
  
  
  // Constructor 
  
  
    
  Employee(int id,String firstname , String lastname, int dayworked){
    

      this.id = id; 
    
      this.firstname =firstname;
    
      this.lastname = lastname;
    
      this.dayworked = dayworked;

     print(" Inside Employee Constructor");
    
  }
  
  
}




// Manager Class 


class Manager extends Employee {
  
  
  //property 
   String project;
 
  
  //Method 
  
  String manageproject(){
    
    return "Managing project " + " " + this.project; 
  }
  
  
  
 // Constructor 
  
  Manager(this.project,int id,String firstname , String lastname, int dayworked ):super(id,firstname,lastname,dayworked){
    
     
       
     print(" Inside Manager constructor");
    
  }
  
  
  

 
}








```

{% endtab %}

{% tab title="Syntax-3" %}

```dart
void main() {
  
  
  //super keyword -2  
  
  
  
  
  var manager1 = Manager("Alpha",1,"John","Doe",12);
  
  
//   manager1.id =1;
//   manager1.firstname="John";
//   manager1.lastname="Doe";
//   manager1.dayworked=30;
//   manager1.project ="Alpha";  
  
  
  
  print(manager1.id);
  print(manager1.firstname);
  print(manager1.lastname);
  print(manager1.dayworked);
  print(manager1.project);
  
  
}

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

  

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

  int salary(int perDaywage) {
    return (this.dayworked * perDaywage);
  }
  
  
  // Constructor 
  
  
    
  Employee(this.id,this.firstname ,this.lastname, this.dayworked){
    

     

     print(" Inside Employee Constructor");
    
  }
  
  
}




// Manager Class 


class Manager extends Employee {
  
  
  //property 
   String project;
 
  
  //Method 
  
  String manageproject(){
    
    return "Managing project " + " " + this.project; 
  }
  
  
  
 // Constructor 
  
  Manager(this.project,int id,String firstname , String lastname, int dayworked ):super(id,firstname,lastname,dayworked){
    
     
       
     print(" Inside Manager constructor");
    
  }
  
  
  

 
}








```

{% endtab %}

{% tab title="Without print statement" %}

```dart
void main() {
  
  
  //super keyword -2  
  
  
  
  
  var manager1 = Manager("Alpha",1,"John","Doe",12);
  
  
//   manager1.id =1;
//   manager1.firstname="John";
//   manager1.lastname="Doe";
//   manager1.dayworked=30;
//   manager1.project ="Alpha";  
  
  
  
  print(manager1.id);
  print(manager1.firstname);
  print(manager1.lastname);
  print(manager1.dayworked);
  print(manager1.project);
  
  
}

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

  

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

  int salary(int perDaywage) {
    return (this.dayworked * perDaywage);
  }
  
  
  // Constructor 
  
  
    
  Employee(this.id,this.firstname ,this.lastname, this.dayworked);
  
}




// Manager Class 


class Manager extends Employee {
  
  
  //property 
   String project;
 
  
  //Method 
  
  String manageproject(){
    
    return "Managing project " + " " + this.project; 
  }
  
  
  
 // Constructor 
  
  Manager(this.project,int id,String firstname , String lastname, int dayworked ):super(id,firstname,lastname,dayworked);
  
  

 
}








```

{% endtab %}
{% endtabs %}

### Section 3.1

{% embed url="<https://youtu.be/Meu6a14gu-U>" %}

```dart
void main() {
  
  
  //super keyword -2  
  
  
  
  
  var manager1 = Manager(project:"Alpha",id:1,firstname:"John",lastname:"Doe",dayworked:12);
  
  
//   manager1.id =1;
//   manager1.firstname="John";
//   manager1.lastname="Doe";
//   manager1.dayworked=30;
//   manager1.project ="Alpha";  
  
  
  
  print(manager1.id);
  print(manager1.firstname);
  print(manager1.lastname);
  print(manager1.dayworked);
  print(manager1.project);
  
  
}

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

  

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

  int salary(int perDaywage) {
    return (this.dayworked * perDaywage);
  }
  
  
  // Constructor 
  
  
    
  Employee({this.id,this.firstname ,this.lastname, this.dayworked});
  
}




// Manager Class 


class Manager extends Employee {
  
  
  //property 
   String project;
 
  
  //Method 
  
  String manageproject(){
    
    return "Managing project " + " " + this.project; 
  }
  
  
  
 // Constructor 
  
  Manager({this.project,int id,String firstname , String lastname, int dayworked }):super(id:id,firstname:firstname,lastname:lastname,dayworked:dayworked);
  
 
}

```

### Section 3.2

{% embed url="<https://youtu.be/WPBIstOfb5g>" %}

```dart
void main() {
  
  
  //super keyword -2  
  
  
  
  
  var manager1 = Manager.mynamedcons1(project:"Beta",id:1,firstname:"John",lastname:"Doe",dayworked:12);
  
  
//   manager1.id =1;
//   manager1.firstname="John";
//   manager1.lastname="Doe";
//   manager1.dayworked=30;
//   manager1.project ="Alpha";  
  
  
  
  print(manager1.id);
  print(manager1.firstname);
  print(manager1.lastname);
  print(manager1.dayworked);
  print(manager1.project);
  
  
}

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

  

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

  int salary(int perDaywage) {
    return (this.dayworked * perDaywage);
  }
  
  
  // Constructor 
  
  
    
   Employee({this.id,this.firstname ,this.lastname, this.dayworked});
  
  Employee.mynamedcons2({this.id,this.firstname ,this.lastname, this.dayworked});
  
}




// Manager Class 


class Manager extends Employee {
  
  
  //property 
   String project;
 
  
  //Method 
  
  String manageproject(){
    
    return "Managing project " + " " + this.project; 
  }
  
  
  
 // Constructor 
  
   Manager({this.project,int id,String firstname , String lastname, int dayworked }):super(id:id,firstname:firstname,lastname:lastname,dayworked:dayworked);
  
  
   Manager.mynamedcons1({this.project,int id,String firstname , String lastname, int dayworked }):super.mynamedcons2(id:id,firstname:firstname,lastname:lastname,dayworked:dayworked);

 
}









```
