Diseño orientado a objetos en C++ con Kristoffer Hebert
¿Qué son la encapsulación, la herencia y el polimorfismo?
Encapsulación
Una clase en diseño orientado a objetos es un contenedor para datos y métodos. Las clases usan encapsulación para administrar el acceso a atributos, como métodos y datos, contenidos dentro de sí mismas. En el lenguaje C++, la encapsulación en clases se logra con atributos como: público, privado, protegido y estático. Los atributos de clase pública son accesibles en todas partes. Los atributos de clase privada solo son accesibles para los métodos de clase dentro de sí mismos. Los atributos protegidos son accesibles a sí mismos y a las Clases Secundarias de sí mismos. Los atributos estáticos solo están disponibles para la Clase Principal, pero no para el objeto construido de clase.
Herencia
La herencia en el diseño orientado a objetos describe la relación entre las Clases Principales cuando extienden las Clases Secundarias. Extender significa que una clase reemplaza atributos de otra clase o hereda atributos de otra clase. En el ejemplo de código proporcionado, puede ver que la Clase Secundaria hereda todos los atributos de la Clase Principal. La clase hija anula el valor FirstName en la llamada al constructor. Así es como obtienes los nombres, Tom Sawyer y Suzy Sawyer.Ejemplo de código de herencia de clase
Polimorfismo
El polimorfismo describe la relación de clase uno a muchos en el diseño orientado a objetos. Una clase principal puede tener varias clases secundarias que heredan y anulan propiedades. La Clase de Transporte tiene dos Clases que la extienden, Avión y velero, anulando sus atributos protegidos y el método ShowDetails.
Las claves para recordar las clases
son contenedores que tienen atributos, llamados datos y método. Las clases usan encapsulación para administrar el acceso a estos atributos. En C++, los atributos de clase se pueden administrar a través de modificadores de atributos de clase privados, estáticos, públicos y protegidos. Las clases heredan los atributos de las Clases que extienden. Además, las clases pueden anular atributos de las Clases que amplían. Las clases para padres pueden tener varias clases para hijos.