• Jueves 28 de Marzo de 2024, 21:11

Autor Tema:  Clases Abstractas  (Leído 2908 veces)

cris_maco

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Clases Abstractas
« en: Miércoles 20 de Junio de 2007, 10:43 »
0
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

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Clases Abstractas
« Respuesta #1 en: Jueves 21 de Junio de 2007, 02:28 »
0
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:
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

cris_maco

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re: Clases Abstractas
« Respuesta #2 en: Jueves 21 de Junio de 2007, 10:54 »
0
se entiende perfecto, pero me podrias poner un ejemplo concreto? del mundo real  :P

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Clases Abstractas
« Respuesta #3 en: Viernes 22 de Junio de 2007, 00:14 »
0
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.
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.