Interfaz en Dart

La interfaz en el dardo proporciona al usuario el plano de la clase, que cualquier clase debe seguir si interactúa con esa clase, es decir, si una clase hereda otra, debe redefinir cada función presente dentro de una clase interconectada a su manera. No son más que un conjunto de métodos definidos para un objeto. Dart no tiene ninguna forma directa de crear una clase heredada, tenemos que hacer uso de la palabra clave implements para hacerlo.

Sintaxis: 

class Interface_class_name{
   ...
}

class Class_name implements Interface_class_name {
   ...
}

Ejemplo 1:
 

Dart

void main(){
    
   // Creating Object
   // of the class Gfg
   Gfg geek1= new Gfg();
    
   // Calling method
   // (After Implementation )
   geek1.printdata(); 
}
  
// Class Geek (Interface)
class Geek { 
   void printdata() { 
      print("Hello Geek !!"); 
   } 
}  
  
// Class Gfg implementing Geek
class Gfg implements Geek { 
   void printdata() {  
      print("Welcome to GeeksForGeeks"); 
   } 
}

 

Producción: 

Welcome to GeeksForGeeks

Nota: la clase debe usar la palabra clave implements , en lugar de extenderse para poder usar un método de interfaz.

Herencia múltiple en Dart

En dart, las herencias múltiples se logran mediante el uso de implementos. Aunque prácticamente dart no admite herencias múltiples, admite múltiples interfaces.

Sintaxis:

class interface_class1 {
    ...
}
class interface_class2 {
    ...
}
.
.
.
.
class interface_classN {
    ...
}

class class_name implements interface_class1, interface_class2, ...., interface_classN {
    ...
}

Ejemplo:
 

Dart

// Dart Program to show Multiple Inheritance 
void main(){
    
   // Creating Object of
   // the class Gfg
   Gfg geek1= new Gfg();
    
   // Calling method (After Implementation )
   geek1.printdata1(); 
   geek1.printdata2(); 
   geek1.printdata3(); 
}
  
// Class Geek1 (Interface1)
class Geek1 { 
   void printdata1() { 
      print("Hello Geek1 !!"); 
   } 
}  
 // Class Geek2 (Interface2)
class Geek2 { 
   void printdata2() { 
      print("Hello Geek2 !!"); 
   } 
}  
 // Class Geek3 (Interface3)
class Geek3 { 
   void printdata3() { 
      print("Hello Geek3 !!"); 
   } 
}  
  
// Class Gfg implementing Geek1, Geek2, Geek3.
class Gfg implements Geek1, Geek2, Geek3 { 
   void printdata1() {  
      print("Howdy Geek1,\nWelcome to GeeksForGeeks"); 
   } 
    
  void printdata2() {  
      print("Howdy Geek2,\nWelcome to GeeksForGeeks"); 
   } 
    
  void printdata3() {  
      print("Howdy Geek3,\nWelcome to GeeksForGeeks"); 
   }   
} 

 

Producción: 

Howdy Geek1,
Welcome to GeeksForGeeks
Howdy Geek2,
Welcome to GeeksForGeeks
Howdy Geek3,
Welcome to GeeksForGeeks

Importancia de la interfaz:  

  1. Se utiliza para lograr la abstracción en Dart.
  2. Es una forma de lograr múltiples herencias en Dart.

Puntos importantes:  

  1. Si se ha implementado una clase, todos sus métodos y variables de instancia deben anularse durante la interfaz.
  2. En dart, no existen medios directos para declarar una interfaz, por lo que la declaración de una clase se considera en sí misma como una declaración en la interfaz.
  3. Una clase puede extender solo una clase pero puede implementar tantas como desee.

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 *