Hacer los miembros de datos privados y controlando su acceso, especialmete
el acceso de escritura, a aquellos miembros de datos vía
funciones miembro, ayuda a asegurar la integridad de los datos.
Tener acceso a datos privados mediante las funciones miembro set
y get no sólamente protege los miembros de datos contra la
recepción de valores inválidos ,sino también
aísla a los clientes de la clase de la representación
de los miembros de datos. Entonces, si por alguna razón cambia
la representación de los datos (típicamente para disminuir
la cantidad de almacenamiento requerido o para mejorar el rendimiento),
sólo las funciones miembro necesitan modificarse no es necesario
que los clientes cambie, en tanto la interfaz proporcionada por
las funciones miembro se conserve igual. Los clientes pueden, sin
embargo requerir ser recompilados.
Al heredar capacidades que no son necesarias en la clase derivada,
dichas capacidades se deben enmascarar mediante redefinición
de las funciones.
La herencia múltiple, si se utiliza adecuadamente, es una
capacidad poderosa. La herencia múltiple deber ser
utilizada cunado exista una relación "es una" entre
un nuevo tipo y dos o más tipos existentes (es decir, tipo
A "es un" tipo B y "es un" tipo C).
Una clase derivada no puede tener acceso a miembros privados de
su clase base.
Una redefinición de una función miembro de clase base
en una clase derivada no necesaria debe tener la misma signatura
que la función miembro de clase base.
Crear una clase derivada no afecta el código fuente o el
código objeto de su clase base; mediante la herencia se conserva
la integridad de la clase base.
En un sistema orientado a objetos, la clases a menudo están
intimamente relacionadas. "Disgregue y elimine" atributos
y comportamientos comunes y colóquelos en una clase base.
A continuación utilice la herencia para formar clases derivadas.
|