Programación Específica > UML

 Clases Abstractas

(1/1)

cris_maco:
hola!!

soy nueva y este es mi primer post. :P

Me gustaria que alguien me pudiera decir cuando es mejor usasr clases abstractas que clases 'normales', o en que situaciones se suelen usar calses abstractas, a parte de en polimorfismo. Es que yo he estudiado el concepto, pero no sus posibles aplicaciones.

gracais

Mollense:
Hola cris_maco.

Bienvenida al foro :beer:

En primer lugar, no son clases normales sino concretas :rolleyes:

Las clases concretas son las que se utilizan para instanciar los objetos mientras que las abstractas se utilizan solamente para heredar de ellas una estructura y/o comportamiento que seguramente van a compartir un conjunto de objetos (Que heredan de ella). Formando así una jerarquía de clases en donde en las cima se encuentran las clases abstractas (Las más genéricas) y a medida que se va bajando de nivel se va ganando en especificaciones/especialización.

¿Se entiende? :think:

cris_maco:
se entiende perfecto, pero me podrias poner un ejemplo concreto? del mundo real  :P

Mollense:
Clase genérica: Persona
Clases concretas que heredan de Persona: Cliente, Proveedor, Empleado, etc.

Tu pregunta es ¿cuándo utilizar un tipo de clase u otro?, pero la respuesta tiene que ver con el diseño de tu sistema y no es que existan reglas que sí o sí tengas que cumplir (Existen algunos patrones pero vos decidís si aplicarlos o no), por ejemplo, si tu sistema solamente va a tener la clase Cliente, no tendría mucho sentido crear la clase Persona, simplemente creas la clase Cliente con todos los atributos y métodos de la clase Persona mas los particulares de la clase Cliente. En resumen, cuando existen dos o mas clases que comparten una estructura o comportamiento en común, se extrae esa parte y se define una superclase con ella de la cual heredarán todas esas clases.

PD: Existen algunos patrones de diseño que muchas veces simplifican las cosas pero no los tengo en formato digital.

Un saludo.

Navegación

[0] Índice de Mensajes

Ir a la versión completa