¿Cuál es la idea de la programación orientada a objetos?
En mi opinión, la orientación a objetos es una extensión natural del modelo del mundo real. Esta es una idea de programación de que "todo es un objeto". Cualquier objeto en la vida real puede clasificarse como un tipo de cosa, y cada individuo es una instancia de un tipo de cosa. La programación orientada a objetos está centrada en objetos y dirigida por mensajes, por lo que programa = objeto mensaje.
La orientación a objetos tiene tres características principales: encapsulación, herencia y polimorfismo.
La encapsulación consiste en abstraer los atributos y comportamientos de un tipo de cosa en una clase, haciendo que sus atributos sean privados y sus comportamientos públicos, lo que mejora la privacidad de los datos y modulariza el código. Esto hace que el código sea más reutilizable.
La herencia abstrae aún más los atributos y comportamientos únicos de una clase de cosas en una clase principal, y cada subclase es una clase principal especial: tiene los comportamientos y atributos de la clase principal. comportamientos y atributos únicos. Al hacerlo, se amplían los bloques de código existentes y se mejora aún más la reutilización del código.
Si la encapsulación y la herencia son para la reutilización del código, entonces el polimorfismo es para la reutilización de la interfaz. Una de las funciones principales del polimorfismo es desacoplar la herencia de las clases padre e hijo. Si la relación entre las clases padre e hijo en herencia es IS-A, entonces la relación entre las interfaces y las clases de implementación es HAS-A. En pocas palabras, el polimorfismo permite que las referencias (o interfaces) de la clase principal apunten a objetos de subclase (o clase de implementación). Muchos patrones de diseño se diseñan basándose en polimorfismo orientado a objetos.
Para resumir, si la encapsulación y la herencia son la base de la orientación a objetos, entonces el polimorfismo es la teoría más esencial de la orientación a objetos. Para dominar el polimorfismo, primero debe comprender la interfaz. Solo comprendiendo completamente la interfaz podrá aplicar mejor el polimorfismo.