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