Dart – Super y esta palabra clave

Súper palabra clave en Dart:

En Dart, la palabra clave super se usa para referirse al objeto de clase principal inmediato. Se utiliza para llamar a propiedades y métodos de la superclase. No llama al método, mientras que cuando creamos una instancia de subclase, la de la clase principal se crea implícitamente, por lo que la palabra clave super llama a esa instancia.

Ventajas de la palabra clave super:

  • Se puede usar para acceder a los miembros de datos de la clase principal cuando tanto el padre como el hijo tienen un miembro con el mismo nombre.
  • Se utiliza para evitar la anulación del método principal.
  • Se puede usar para llamar al constructor parametrizado de la clase principal.

Sintaxis:

// To access parent class variables
super.variable_name;

// To access parent class method
super.method_name();

Ejemplo #1: Mostrando el flujo de creación de objetos en herencia.

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!!

Ejemplo #2: Acceso a variables de clase padre

// Creating Parent class
class SuperGeek {
    String geek = "Geeks for Geeks";
}
  
// Creating child class
class SubGeek extends SuperGeek {
  
    // Accessing parent class variable
    void printInfo()
    {
        print(super.geek);
    }
}
  
void main()
{
    // Creating child class object
    SubGeek geek = new SubGeek();
  
    // Calling child class method
    geek.printInfo();
}

Producción:

Geeks for Geeks

Ejemplo #3: Acceder a los métodos de la clase padre

class SuperGeek {
  
    // Creating a method in Parent class
    void printInfo()
    {
        print("Welcome to Gfg!!\nYou are inside parent class.");
    }
}
  
class SubGeek extends SuperGeek {
  
    void info()
    {
        print("You are calling method of parent class.");
  
        // Calling parent class method
        super.printInfo();
    }
}
  
void main()
{
    SubGeek geek = new SubGeek();
    geek.info();
}

Producción:

You are calling method of parent class.
Welcome to Gfg!!
You are inside parent class.

Esta palabra clave en Dart:

Si bien la palabra clave super se usa para llamar a la clase principal, esta palabra clave se usa para llamar a la clase en sí.

Ventajas de esta palabra clave:

  • Se puede usar para llamar a la variable de instancia de la clase actual.
  • Se puede utilizar para establecer los valores de la variable de instancia.
  • Se puede utilizar para devolver la instancia de clase actual.

Usando esta palabra clave en Dart –

// Creating class
class Geek {
  
    // Creating an instance variable
    String geek_info;
  
    // Creating a parameterized constructor
    Geek(String info)
    {
        // Calling instance variable using this keyword.
        this.geek_info = info;
    }
    void printInfo()
    {
        print("Welcome to $geek_info");
    }
}
  
void main()
{
    Geek geek = new Geek("Geeks for Geeks");
    // Calling method
    geek.printInfo();
}

Producción:

Welcome to Geeks for Geeks

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 *