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:
- Herencia única: cuando una clase hereda una clase principal única, se produce esta herencia.
- Herencia múltiple: cuando una clase hereda más de una clase principal, se produce esta herencia. Dart no es compatible con esto.
- Herencia de varios niveles: cuando una clase hereda otra clase secundaria, se produce esta herencia.
- Herencia jerárquica: más de una clase tiene la misma clase principal.
Puntos importantes:
- Las clases secundarias heredan todas las propiedades y métodos excepto los constructores de la clase principal.
- 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