Cuatro características de los programas orientados a objetos
La programación orientada a objetos tiene cuatro características únicas: abstracción, encapsulación, herencia y polimorfismo.
1. Abstracción
La abstracción incluye dos aspectos: abstracción de procesos y abstracción de datos. La abstracción de procesos divide un sistema en varios subsistemas según sus funciones y realiza una programación de "refinamiento de arriba hacia abajo y paso a paso". La abstracción de datos se centra en los datos y describe el tipo de datos y las operaciones aplicadas al objeto de ese tipo como un todo (objeto) para formar un tipo de datos abstracto.
2. Encapsulación
La encapsulación es una de las características de la programación orientada a objetos y la principal característica de las clases y objetos. La encapsulación organiza datos y operaciones sobre estos datos en componentes significativos independientes. El mundo exterior no puede acceder directamente a estos datos encapsulados, lo que garantiza la exactitud de estos datos. Si ocurre un error en estos datos, es fácil localizar qué operación causó el error.
Si el mundo exterior necesita acceder a los datos de la clase, debe acceder a ellos a través de la interfaz. Una interfaz especifica qué solicitudes se pueden realizar para un objeto específico.
3. Herencia
La herencia es un modelo jerárquico que conecta clases y permite y fomenta la reutilización de clases. Proporciona una forma de expresar claramente la coherencia. Se puede derivar una nueva clase de un objeto a partir de una clase existente, un proceso llamado herencia de clases. La nueva clase hereda las características de la clase original. La nueva clase se denomina clase derivada (subclase) de la clase original y la clase original se denomina clase base (clase principal) de la nueva clase. Una clase derivada puede heredar métodos y variables de instancia de su clase base, y una clase derivada puede modificar o agregar nuevos métodos para hacerla más adecuada para necesidades especiales.
4. Polimorfismo
El polimorfismo permite que objetos de diferentes clases respondan al mismo mensaje. Por ejemplo, para la misma suma, sumar dos tiempos es definitivamente completamente diferente a sumar dos números enteros. El polimorfismo incluye polimorfismo parametrizado y polimorfismo en tiempo de ejecución. El lenguaje polimórfico tiene las ventajas de flexibilidad, abstracción, comportamiento compartido y código compartido, y puede resolver bien el problema de las funciones de aplicación con el mismo nombre.