Dardo – Concepto de Herencia

En Dart, una clase puede heredar otra clase, es decir, Dart puede crear una nueva clase a partir de una clase existente. Hacemos uso de la palabra clave extend para hacerlo.

Terminología:  

  • Clase Padre: Es la clase cuyas propiedades son heredadas por la clase hija. También se conoce como clase base o superclase.
  • Child Class: Es la clase que hereda las propiedades de las otras clases. También se conoce como clase o subclase privada .
class parent_class{
...
}

class child_class extends parent_class{
...
}

Ejemplo 1: Ejemplo de Herencia Única en el dardo. 

Dart

// Dart program to show the single inheritance
  
// Creating parent class
class Gfg{
    
  // Creating a function
  void output(){
    print("Welcome to gfg!!\nYou are inside output function.");
  }
}
  
// Creating Child class
class GfgChild extends Gfg{
  // We are not defining
  // any thing inside it...
}
void main() {
  // Creating object of GfgChild class
  var geek = new GfgChild();
    
  // Calling function
  // inside Gfg(Parent class)
  geek.output();
}

 

Producción: 

Welcome to gfg!!
You are inside output function.

Tipos de Herencia: 

  1. Herencia única: cuando una clase hereda una clase principal única, se produce esta herencia.
  2. Herencia múltiple: cuando una clase hereda más de una clase principal, se produce esta herencia. Dart no es compatible con esto.
  3. Herencia de varios niveles: cuando una clase hereda otra clase secundaria, se produce esta herencia.
  4.  Herencia jerárquica: más de una clase tiene la misma clase principal.

Puntos importantes: 

  1. Las clases secundarias heredan todas las propiedades y métodos excepto los constructores de la clase principal.
  2. A diferencia de Java, Dart tampoco admite la herencia múltiple.

Ejemplo 2:

Dart

// Dart program for multilevel interitance
  
// Creating parent class
class Gfg{
    
  // Creating a function
  void output1(){
    print("Welcome to gfg!!\nYou are inside the output function of Gfg class.");
  }
}
  
// Creating Child1 class
class GfgChild1 extends Gfg{
    
  // Creating a function
  void output2(){
    print("Welcome to gfg!!\nYou are inside the output function of GfgChild1 class.");
  }
}
  
// Creating Child2 class
class GfgChild2 extends GfgChild1{
  // We are not defining
  // any thing inside it...
}
  
void main() {
  // Creating object
  // of GfgChild class
  var geek = new GfgChild2();
    
  // Calling function
  // inside Gfg
  //(Parent class of Parent class)
  geek.output1();
    
  // Calling function
  // inside GfgChild
  // (Parent class)
  geek.output2();
}

 

Producción:  

Welcome to gfg!!
You are inside the output function of Gfg class.
Welcome to gfg!!
You are inside the output function of GfgChild1 class.

Ejemplo 3: Herencia jerárquica.  

Dart

// Dart program for Hierarchical inheritance
  
// Creating parent class
class Gfg{
    
  // Creating a function
  void output1(){
    print("Welcome to gfg!!\nYou are inside output function of Gfg class.");
  }
}
  
// Creating Child1 class
class GfgChild1 extends Gfg{
  // We are not defining
  // any thing inside it...
}
  
// Creating Child2 class
class GfgChild2 extends Gfg{
    
  // We are not defining
  // any thing inside it...
}
  
void main() {
  // Creating object
  // of GfgChild1 class
  var geek1 = new GfgChild1();
    
  // Calling function
  // inside Gfg(Parent class)
  geek1.output1();
    
  // Creating object of
  // GfgChild1 class
  var geek2 = new GfgChild2();
    
  // Calling function
  // inside Gfg(Parent class)
  geek2.output1();
}

 

Producción: 

Welcome to gfg!!
You are inside output function of Gfg class.
Welcome to gfg!!
You are inside output function of Gfg class.

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 *