Tutorial de clase abstracta de C #: ¿Qué es la abstracción con ejemplo

Tabla de contenido:

Anonim

¿Qué es la clase abstracta en C #?

La clase abstracta nunca se puede instanciar y está marcada por la palabra clave abstract. Una clase abstracta contiene cero o más métodos abstractos. La clase abstracta actúa como una clase base y está diseñada para ser heredada por subclases que implementan o anulan su método.

Aprendamos la clase abstracta en C # con el ejemplo que se muestra a continuación. A continuación se muestra la definición de una clase llamada 'Animal'. Cuando se define la clase 'Animal', no se sabe nada sobre el animal, ya sea un perro o un gato. El método llamado descripción es solo un método genérico definido para la clase.

Ahora, cuando se sabe qué va a ser exactamente el Animal, creamos otra clase que hereda la clase base. Si sabemos que el animal es de hecho un perro, creamos la clase Perro que hereda la clase base principal. La diferencia clave aquí es que la clase Dog no puede cambiar la definición del método Description de la clase Animal. Tiene que definir su propio método abstracto de C # llamado Dog-Description. Este es el concepto básico de las clases abstractas de C #.

Veamos la clase abstracta en C # con un ejemplo en tiempo real sobre cómo podemos cambiar nuestro código para incluir una clase abstracta de C #. Tenga en cuenta que no ejecutaremos el código, porque no hay nada que pueda ejecutarse usando una clase de abstracción C #.

Paso 1) Como primer paso, creemos una clase abstracta. La clase se llamará Tutorial y solo tendrá un método. Todo el código debe escribirse en el archivo Program.cs.

Explicación del código: -

  1. Primero definimos la clase abstracta. Tenga en cuenta el uso de la palabra clave abstracta. Esto se usa para indicar que la clase es una clase abstracta.
  2. A continuación, estamos definiendo nuestro método que no hace nada. El método debe tener la palabra clave denominada virtual. Esto significa que la clase secundaria no puede cambiar el método. Este es un requisito básico para cualquier clase abstracta.

Paso 2) Ahora agreguemos nuestra clase secundaria. Este código se agrega al archivo Program.cs.

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DemoApplication{abstract class Tutorial{public virtual void Set(){}}class Guru99Tutorial:Tutorial{protected int TutorialID;protected string TutorialName;public void SetTutorial(int pID,string pName){TutorialID=pID;TutorialName=pName;}public String GetTutorial(){return TutorialName;}static void Main(string[] args){Guru99Tutorial pTutor=new Guru99Tutorial();pTutor.SetTutorial(1,".Net");Console.WriteLine(pTutor.GetTutorial());Console.ReadKey();}}}

No hay nada excepcional en este código. Simplemente definimos una clase llamada 'Guru99Tutorial' que hereda la clase Tutorial abstracta. Luego definimos los mismos métodos que hemos estado usando desde antes.

Nota: Aquí no podemos cambiar la definición del método Set que se definió en la clase Tutorial. En la clase Tutorial, habíamos definido un método llamado 'Set' (public virtual void Set ()). Dado que el método era parte de la clase abstracta C #, no se nos permite definir el método Set nuevamente en la clase Guru99Tutorial.

Resumen

  • Una clase abstracta en C sostenido es una clase base que tiene los requisitos muy básicos de cómo debería verse una clase. No es posible que la clase secundaria herede los métodos de la clase base.