¿Utilidad de los métodos abstractos?

21/07/2005 - 19:29 por Benton | Informe spam
Hola grupo,

Como recién llegado a C#, me pregunto cual es la utilidad práctica de los
métodos abstractos. Entiendo que los métodos virtuales, al tener
implementación en la clase abstracta, pueden sobreescribirse (o no) en las
clases derivadas.

Pero los métodos abstractos, aunque son virtuales, no tienen implementación
en la clase abstracta, por lo que siempre deben sobreescribirse en las
clases derivadas. Es decir, esto es prácticamente lo mismo que crear un
método privado allí. ¿O existe alguna diferencia que se me escapa?

Saludos,

-Benton
 

Leer las respuestas

#1 Norberto Planchart
21/07/2005 - 20:16 | Informe spam
La utilidad es que obligas a la clase que hereden de la abstracta a que
tenga un método X

Ejemplo en la clase abstracta _servivo_ creas el método abstracto _comer_
Así cualquier clase que herede de _servivo_ tiene que implementar
Obligatoriamente el método _comer_ a menos que sea abstracta también en ese
caso se lo deja a su hija.

_Es como un contrato si quieres ser servivo tienes que saber comer :-)

Con código se ve mejor!!!

abstract public class servivo
{
public abstract void comer();
}
public class humano: servivo
{
override public void comer()
{//como comen los humanos
}
}
abstract public class mamifero: servivo
{
//public abstract override void comer(); es posible asi solo para que se
lea
}
public class perro:mamifero
{
override public void comer()
{//como comen los humanos
}
}
// Esto no compila oro no puede ser servivo si no implementa comer
// public class oro: servivo
// {
// public void adornar(){}
// }

Es como una interface

Léete este libro. : http://www.josanguapo.com/ te explica el que y el
porque ;-)
muy muy bueno
Norberto Planchart, MCSD.Net
Caracas - Venezuela
-Como no sabían que era imposible, lo hicieron.-


"Benton" wrote in message
news:
Hola grupo,

Como recién llegado a C#, me pregunto cual es la utilidad práctica de los
métodos abstractos. Entiendo que los métodos virtuales, al tener
implementación en la clase abstracta, pueden sobreescribirse (o no) en las
clases derivadas.

Pero los métodos abstractos, aunque son virtuales, no tienen
implementación en la clase abstracta, por lo que siempre deben
sobreescribirse en las clases derivadas. Es decir, esto es prácticamente
lo mismo que crear un método privado allí. ¿O existe alguna diferencia que
se me escapa?

Saludos,

-Benton

Preguntas similares