Super constructor en Dart

En dart, la subclase puede heredar todas las variables y métodos de la clase principal, con el uso de la palabra clave extends , pero no puede heredar el constructor de la clase principal. Para hacerlo, hacemos uso del superconstructor en el dardo. Hay dos formas de llamar al superconstructor: 

  1. Implícitamente
  2. Explícitamente

Cuando llamamos explícitamente, hacemos uso del superconstructor como:  

Child_class_constructor() :super() {
...
}

Súper implícito:  en este caso, la clase principal se llama implícitamente, cuando hay una creación de objetos de la clase secundaria. Aquí no hacemos uso del superconstructor, pero cuando se invoca el constructor de la clase secundaria, llama al constructor de la clase principal predeterminado. 

Ejemplo: llamando al constructor principal sin tomar parámetros.  

Dart

// Dart program for calling parent
// constructor taking no parameter
class SuperGeek {
    
  // Creating parent constructor
  SuperGeek(){
    print("You are inside Parent constructor!!");
  }
}
   
class SubGeek extends SuperGeek {
    
  // Creating child constructor
  SubGeek(){
    print("You are inside Child constructor!!");
  }
}
   
void main() {
  SubGeek geek = new SubGeek();
}

 

Producción:  

You are inside Parent constructor!!
You are inside Child constructor!!

Super explícito:  si el constructor principal es predeterminado, lo llamamos como sigue en super implícito, pero si toma parámetros, la superclase se invoca como se muestra en la sintaxis mencionada anteriormente. 

Ejemplo: llamando al constructor padre tomando parámetro(s). 

Dart

class SuperGeek {
    
  // Creating parent constructor
  SuperGeek(String geek_name){
    print("You are inside Parent constructor!!");
    print("Welcome to $geek_name");
  }
}
   
class SubGeek extends SuperGeek {
    
  // Creating child constructor
  // and calling parent class constructor
  SubGeek() : super("Geeks for Geeks"){
    print("You are inside Child constructor!!");
  }
}
   
void main() {
  SubGeek geek = new SubGeek();
}

 

Producción: 

You are inside Parent constructor!!
Welcome to Geeks for Geeks
You are inside Child constructor!!

Publicación traducida automáticamente

Artículo escrito por aditya_taparia y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *