Hay un cierto desacuerdo sobre exactamente qué
características de un método de programación o lenguaje le definen como
“orientado a objetos”, pero hay un consenso general en que las características
siguientes son las más importantes (para más información, seguir los enlaces
respectivos):
Abstracción: Cada objeto en el sistema sirve como modelo de un “agente”
abstracto que puede realizar trabajo, informar y cambiar su estado, y
“comunicarse” con otros objetos en el sistema sin revelar cómose implementan estas características. Los
procesos, las funciones o los métodos pueden también ser abstraídos y cuando lo
están, una variedad de técnicas son requeridas para ampliar una abstracción.
Encapsulamiento: Significa reunir a todos los elementos que pueden
considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción.
Esto permite aumentar la cohesión de los componentes del sistema. Algunos autores confunden
este concepto con el principio de ocultación, principalmente porque se suelen
emplear conjuntamente.
Polimorfismo: dicho de otro modo, las referencias y las
colecciones de objetos pueden contener objetos de diferentes tipos, y la
invocación de un comportamiento en una referencia producirá el comportamiento
correcto para el tipo real del objeto referenciado. Cuando esto ocurre en
“tiempo de ejecución”, esta última característica se llama asignación
tardía o asignación
dinámica. Algunos lenguajes
proporcionan medios más estáticos (en “tiempo de compilación”) de polimorfismo,
tales como las plantillas y la sobrecarga
de operadores de C++.
Herencia: las clases no están aisladas, sino que se relacionan entre
sí, formando una jerarquía de clasificación. Los objetos heredan las
propiedades y el comportamiento de todas las clases a las que pertenecen. La
herencia organiza y facilita el polimorfismo y el encapsulamiento permitiendo a
los objetos ser definidos y creados como tipos especializados de objetos
preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener
que reimplementar su comportamiento. Esto suele hacerse habitualmente agrupando
los objetos en clases y
estas en árboles o enrejados que
reflejan un comportamiento común. Cuando un objeto hereda de más de una clase
se dice que hay herencia
múltiple; esta
característica no está soportada por algunos lenguajes (como Java).
Buena informacion (y)
ResponderEliminar