1. ACTIVIDAD 10
HERENCIA
La herencia es, después de la agregación o composición, el mecanismo más utilizado para
alcanzar algunos de los objetivos más preciados en el desarrollo de software como lo son la
reutilización y la extensibilidad. A través de ella los diseñadores pueden crear nuevas clases
partiendo de una clase o de una jerarquía de clases preexistente (ya comprobadas y
verificadas) evitando con ello el rediseño, la modificación y verificación de la parte ya
implementada. La herencia facilita la creación de objetos a partir de otros ya existentes e
implica que una subclase obtiene todo el comportamiento (métodos) y eventualmente los
atributos (variables) de su superclase.
Es la relación entre una clase general y otra clase más específica. Por ejemplo: Si declaramos
una clase párrafo derivada de una clase texto, todos los métodos y variables asociadas con la
clase texto, son automáticamente heredados por la subclase párrafo.
La herencia es uno de los mecanismos de los lenguajes de programación orientada a objetos
basados en clases, por medio del cual una clase se deriva de otra de manera que extiende su
funcionalidad. La clase de la que se hereda se suele denominar clase base, clase padre,
superclase, clase ancestro (el vocabulario que se utiliza suele depender en gran medida del
lenguaje de programación).
JESSICA KARINA GARCÍA LÓPEZ
1
2. ACTIVIDAD 10
importjavax.swing.JOptionPane;
public class Mamifero{
privateintpatas;
private String nombre;
public void imprimirPatas(){
JOptionPane.showMessageDialog(null," Tiene " + patas + " patasn", "Mamifero", JOptionPane.INFORMATION_MESSAGE);
}
publicMamifero(String nombre, intpatas){
this.nombre = nombre;
this.patas = patas;
}
}
public class Perro extends Mamifero {
publicPerro(String nombre){
super(nombre, 4);
}
}
public class Gato extends Mamifero {
publicGato(String nombre){
super(nombre, 4);}
public class CrearPerro {
public static void main(String[] args) {
Perro perrito = new Perro("Pantaleon");
perrito.imprimirPatas(); /*Está en la clase mamífero*/
}
}
JESSICA KARINA GARCÍA LÓPEZ
2
3. ACTIVIDAD 10
POLIMORFISMO
En programación orientada a objetos el polimorfismo se refiere a la posibilidad de
enviar un mensaje a un grupo de objetos cuya naturaleza puede ser heterogénea.
El único requisito que deben cumplir los objetos que se utilizan de manera
polimórfica es saber responder al mensaje que se les envía.
La apariencia del código puede ser muy diferente dependiendo del lenguaje que se
utilice, más allá de las obvias diferencias sintácticas.
Por ejemplo, en un lenguaje de programación que cuenta con un sistema de tipos
dinámico (en los que las variables pueden contener datos de cualquier tipo u
objetos de cualquier clase) como Smalltalk no se requiere que los objetos que se
utilizan de modo polimórfico sean parte de una jerarquía de clases.
En lenguajes basados en clases y con un sistema de tipos de datos fuerte
(independientemente de si la verificación se realiza en tiempo de compilación o de
ejecución), es posible que el único modo de poder utilizar objetos de manera
polimórfica sea que compartan una raíz común, es decir, una jerarquía de clases,
ya que esto proporciona la compatibilidad de tipos de datos necesaria para que sea
JESSICA KARINA GARCÍA LÓPEZ
3
4. ACTIVIDAD 10
posible utilizar una misma variable de referencia (que podrá apuntar a objetos de
diversas subclases de dicha jerarquía) para enviar el mismo mensaje (o un grupo
de mensajes) al grupo de objetos que se tratan de manera polimórfica. No
obstante, algunos lenguajes de programación (Java, C++) permiten que dos objetos
de distintas jerarquías de clases respondan a los mismos mensajes, a través de las
denominadas interfaces (esta técnica se conoce como composición de objetos). Dos
objetos que implementen la misma interfaz podrán ser tratados de forma idéntica,
como un mismo tipo de objeto, el tipo definido por la interfaz. Así, todo un
conjunto de objetos podrán intercambiarse en tiempo de ejecución, siempre que
sean del mismo tipo, y además con dependencias mínimas entre ellos. Por estos
motivos se considera un buen principio de diseño en programación orientada a
objetos el favorecer la composición de objetos frente a la herencia de clases.
' Declaramos 2 clases: Sumar y Restar que implementan la interfaz y que llaman a
la clase Operacion:
JESSICA KARINA GARCÍA LÓPEZ
4
5. ACTIVIDAD 10
ClassSumar
ImplementsIOperar
PrivateFunctionOperar(valor1 asInteger, valor2
asInteger)asLongImplementsIOperar.Operar
Return valor1 + valor2
EndFunction
FunctionCalcular()asLong
opasNewoperacion
Returnop.Calcular(Me)' se está llamando a la función 'Calcular' de la clase
'Operación'
EndFunction
EndClass
ENCAPSULAMIENTO
JESSICA KARINA GARCÍA LÓPEZ
5
6. ACTIVIDAD 10
En Programación modular, y más específicamente en programación orientada a
objetos, se denomina encapsulamiento al ocultamiento del estado, es decir, de los
datos miembro de un objeto de manera que sólo se pueda cambiar mediante las
operaciones definidas para ese objeto.
Cada objeto está aislado del exterior, es un módulo natural, y la aplicación entera
se reduce a un agregado o rompecabezas de objetos. El aislamiento protege a los
datos asociados de un objeto contra su modificación por quien no tenga derecho a
acceder a ellos, eliminando efectos secundarios e interacciones.
De esta forma el usuario de la clase puede obviar la implementación de los
métodos y propiedades para concentrarse sólo en cómo usarlos. Por otro lado se
evita que el usuario pueda cambiar su estado de maneras imprevistas e
incontroladas. Como se puede observar de los diagramas, las variables del objeto
se localizan en el centro o núcleo del objeto. Los métodos rodean y esconden el
núcleo del objeto de otros objetos en el programa. 'Al empaquetamiento de las
variables de un objeto con la protección de sus métodos se le llama
encapsulamiento. Típicamente, el encapsulamiento es utilizado para esconder
detalles de la puesta en práctica no importantes de otros objetos. Entonces, los
JESSICA KARINA GARCÍA LÓPEZ
6
7. ACTIVIDAD 10
detalles de la puesta en práctica pueden cambiar en cualquier tiempo sin afectar
otras partes del programa.
1. Estándar (Predeterminado)
2. Abierto: Hace que el miembro de la clase pueda ser accedido desde el
exterior de la Clase y cualquier parte del programa.
3. Protegido: Solo es accesible desde la Clase y las clases que heredan (a
cualquier nivel).
4. Semi cerrado: Solo es accesible desde la clase heredada
5. Cerrado: Solo es accesible desde la Clase.
En el encapsulamiento hay analizadores que pueden ser semánticos y sintácticos.
CONCLUCION;
JESSICA KARINA GARCÍA LÓPEZ
7
8. ACTIVIDAD 10
La HERENCIA es específica de la programación orientada a objetos, donde una clase nueva se crea a partir
de una clase existente. La herencia (a la que habitualmente se denomina subclases) proviene del hecho de que
la subclase (la nueva clase creada) contiene las atributos y métodos de la clase primaria. La principal ventaja
de la herencia es la capacidad para definir atributos y métodos nuevos para la subclase, que luego se aplican
a
los
atributos
y
métodos
heredados.
Esta particularidad permite crear una estructura jerárquica de clases cada vez más especializada. La gran
ventaja es que uno ya no debe comenzar desde cero cuando desea especializar una clase existente. Como
resultado, se pueden adquirir bibliotecas de clases que ofrecen una base que puede especializarse a voluntad
(la compañía que vende estas clases tiende a proteger las datos miembro usando la encapsulación).
La ENCAPSULACIÓN es un mecanismo que consiste en organizar datos y métodos de una estructura,
conciliando el modo en que el objeto se implementa, es decir, evitando el acceso a datos por cualquier otro
medio distinto a los especificados. Por lo tanto, la encapsulación garantiza la integridad de los datos que
contiene un objeto.
La palabra POLIMORFISMOproviene del griego y significa que posee varias formas diferentes. Este es uno de los
conceptos esenciales de una programación orientada a objetos. Así como la herencia está relacionada con las clases y su
jerarquía, el polimorfismo se relaciona con los métodos.
BIBLIOGRAFÍA
JESSICA KARINA GARCÍA LÓPEZ
8