Todos los lenguajes orentados a objetos proporcionan mecanismos que ayudan a implementar el modelo orientado a objetos. Estos mecanismos son:
- el encapsulado,
- la herencia y
- el polimorfismo
ENCAPSULADO
El encapsulado es el mecanismo que permite juntar el código y los datos que manipula, y que mantiene ambos alejados de posibles interferencias y usos indebidos.
z El acceso al código se realiza de forma controlada a través de una interfaz bien definida.
Los lenguajes O.O proveen regularmente un mecanismo para manejar el encapsulamiento a través de un concepto conocido como niveles de visibilidad. Algunos de ellos son:
- Público, un elemento con este nivel de acceso es visible desde cualquier parte del programa, no existe ninguna restricción de visibilidad.
- Privado, el elemento solo es accesible desde dentro de la clase donde se define
- Privado Protegido, es accesible por la propia clase en que se define, y cualquiera de las clases derivadas, sin importar donde estén ubicadas
- Amigable, un atributo friendly es visible desde la clase en que se define y en cualquier otra clase del mismo paquete. Una subclase en otro paquete no tendrá acceso a dicho atributo.
- Protegido, solo es accesible por la clase en que se define, por sus subclases, estén donde estén, y por otras clases del mismo paquete (subsistema).
HERENCIA
La herencia es el proceso mediante el cual un objeto adquiere las propiedades de
otro. Importancia:
z Clasificación jerárquica
z Si no se usara la jerarquía cada objeto debería definir todas sus características.
z La herencia permite a un objeto ser una instancia específica de un caso más general.
z Ejemplos: Animal-Mamífero-Vaca, Persona- Estudiante-Egresado.
z Puede existir una clase “raíz” en la jerarquía de la cual heredan las demás directa o indirectamente.
z Incluye todas las características comunes a todas las clases
Si B hereda de A entonces B incorpora la estructura (atributos) y comportamiento (métodos) de la clase A, pero puede incluir adaptaciones:
- B puede añadir nuevos atributos
- B puede añadir nuevos métodos
- B puede REDEFINIR métodos -à •Refinamiento: Extender el uso original
•Reemplazo: Mejorar la implementación
- B puede renombrar atributos o métodos
- B puede implementar un método diferido en A
EL PROCESO DE HERECIA ES TRANSITIVO
B hereda de A
C hereda de B y A
B y C son descendientes (subclases) de A
B es un descendiente directo de A
C es un descendiente indirecto de A
A
B
C B hereda de A
B es descendiente de A
A es un ascendiente de B
B es subclase de A
A es superclase de B
B es una clase derivada de A
TERMINOLOGÍA
El proceso de herencia es transitivo
• Herencia simple
– Una clase puede heredar de una única clase.
• Herencia múltiple
– Una clase puede heredar de varias clases.
– Clases forman un grafo dirigido aciclíco
POLIMORFISMO
El polimorfismo (del griego muchas formas) es una característica que le
permite a una interfaz ser utilizada por una clase general de acciones. La acción que se realiza depende del contexto.
“Una interfaz, múltiples métodos”
http://eisc.univalle.edu.co/materias/Material_Desarrollo_Software/LPOO_finalLuish97.pdf