• Sábado 9 de Noviembre de 2024, 03:31

Autor Tema:  polimorfismo y encapsulamiento  (Leído 3579 veces)

eze_ps

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
polimorfismo y encapsulamiento
« en: Lunes 22 de Noviembre de 2010, 23:57 »
0
que son?? para que sirven, tienen un ejemplo donde se remarque su uso??

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: polimorfismo y encapsulamiento
« Respuesta #1 en: Martes 23 de Noviembre de 2010, 02:08 »
0
Polimorfismo: un mecanismo de herencia en POO, tal que

Código: C++
  1. class Coche {};
  2. class Renault: class Coche {};
  3. class Peugeot: class Coche {};
  4.  
  5. Coche* polimorfo = new Renault();
  6. delete polimorfo;
  7. Coche* polimorfo = new Peugeot();
  8. delete polimorfo;
  9.  
Creo que un caso de uso queda claro con este ejemplo. Te recomiendo que te mires también los métodos virtuales en este contexto.

Encapsulamiento: aislar los atributos de las demás clases. Generalizando, limitar el acceso a los datos a los métodos de la misma clase, haciendo que cada clase siempre ofrezca acceso a sus datos a través de métodos y no directamente. Por ejemplo:

Código: C++
  1. class Coche
  2. {
  3. private:
  4.     int velocidad;
  5. public:
  6.     int obtenerVelocidad();
  7. };
  8.  
  9. int Coche::obtenerVelocidad(void)
  10. {
  11.     return velocidad;
  12. }
  13.  
  14. Coche cochazo;
  15. // El encapsulamiento nos prohibe hacer esto
  16. cout << cochazo.velocidad;
  17. // pero si nos deja hacer esto
  18. cout << cochazo.obtenerVelocidad();
  19.  
Esto es para asegurar de que el acceso a los datos se hace siempre con control de la clase, así nunca terminará con datos en estados corruptos o desconocidos para la clase misma. Esto implica que los atributos deben ser como mínimo protected salvo casos muy especiales.

Para más detalles y formalidades:

Polimorfismo
Encapsulamiento

Saludos