Clases abstractas en Dart

Una clase abstracta en Dart se define como aquellas clases que contienen uno o más de un método abstracto (métodos sin implementación) en ellas. Mientras que para declarar una clase abstracta hacemos uso de la palabra clave abstract . Por lo tanto, debe tenerse en cuenta que una clase declarada abstracta puede o no incluir métodos abstractos, pero si incluye un método abstracto, entonces debe ser una clase abstracta.

Características de la clase abstracta:  

  • Una clase que contiene un método abstracto debe declararse abstracta, mientras que la clase declarada abstracta puede o no tener métodos abstractos, es decir, puede tener métodos abstractos o concretos.
  • Una clase se puede declarar abstracta utilizando solo la palabra clave abstracta .
  • Una clase declarada como abstracta no se puede inicializar.
  • Una clase abstracta se puede ampliar, pero si hereda una clase abstracta, debe asegurarse de que todos los métodos abstractos en ella se proporcionen con implementación.

Generalmente, las clases abstractas se utilizan para implementar los métodos abstractos en las subclases extendidas.

Sintaxis: 

abstract class class_name {

    // Body of the abstract class
}

Anulación del método abstracto de una clase abstracta.

Ejemplo 

Dart

// Understanding Abstract class in Dart
 
// Creating Abstract Class
abstract class Gfg {
    // Creating Abstract Methods
    void say();
    void write();
}
 
class Geeksforgeeks extends Gfg{
    @override
    void say()
    {
        print("Yo Geek!!");
    }
 
    @override
    void write()
    {
        print("Geeks For Geeks");
    }
}
 
main()
{
    Geeksforgeeks geek = new Geeksforgeeks();
    geek.say();
    geek.write();
}

Producción: 

Yo Geek!!
Geeks For Geeks

Explicación: 

Primero, declaramos una clase abstracta Gfg y creamos un método abstracto geek_info dentro de ella. Después de eso, extendemos la clase Gfg a la segunda clase y anulamos los métodos say() y write(), que dan como resultado su respectivo resultado.

Nota:  No es obligatorio anular el método cuando solo hay una clase que amplía la clase abstracta, porque la anulación se utiliza para cambiar el código predefinido y, como en el caso anterior, no se define nada dentro del método, por lo que el código anterior funciona bien sin anular.

Anulando el método abstracto de una clase abstracta en dos clases diferentes

Ejemplo 

Dart

// Understanding Abstract Class In Dart
// Creating Abstract Class
abstract class Gfg {
    // Creating Abstract Method
    void geek_info();
}
 
// Class Geek1 Inheriting Gfg class
class Geek1 extends Gfg {
    // Overriding method
    @override
    void geek_info()
    {
        print("This is Class Geek1.");
    }
}
 
// Class Geek2 Inheriting Gfg class
class Geek2 extends Gfg {
    // Overriding method again
    @override
    void geek_info()
    {
        print("This is Class Geek2.");
    }
}
 
void main()
{
    Geek1 g1 = new Geek1();
    g1.geek_info();
    Geek2 g2 = new Geek2();
    g2.geek_info();
}

Producción: 

This is Class Geek1.
This is Class Geek2.

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 *