Está en la página 1de 16

INSTITUTO TECNOLÓGICO

SUPERIOR DE ALVARADO

INGIENERIA EN SISTEMAS COMPUTACIONALES


Materia
PROGRAMACION ORIENTADA A OBJETO
Unidad: 3
NUMERO DE CONTROL:
190Z0390
Semestre-Grupo:
SEGUNDO SEMESTRE – (A)
PRODUCTO ACADEMICO
ENSAYO
Presenta
Carlos Eredy Hernández Rodríguez
Docente
ING. JUAN OMAR GAMBOA CRUZ
Fecha:
11 DE MARZO DEL 2020

TLALIXCOYAN, VER. FEB-JUN 2020

1
Contenido
INTRODUCCIÓN.............................................................................................................................3
UNIDAD 3 HERENCIA ...................................................................................................................4
3.1 DEFINICIÓN: CLASE BASE Y CLASE DERIVADA ............................................................4
3.2 CLASIFICACIÓN: HERENCIA SIMPLE Y HERENCIA MÚLTIPLE ...................................6
3.3 REUTILIZACIÓN DE MIEMBROS HEREDADOS ................................................................8
3.4 REFERENCIA AL OBJETO DE LA CLASE BASE.............................................................10
3.5 CONSTRUCTORES Y DESTRUCTORES EN CLASES DERIVADAS ...........................12
Destructores en clases derivadas ...........................................................................................12
3.6 REDEFINICIÓN DE MÉTODOS EN CLASES DERIVADAS ............................................14
CONCLUSIÓN ...............................................................................................................................15
Bibliografía......................................................................................................................................16

2
INTRODUCCIÓN
En este trabajo que fue hacer un ensayo de la asignatura de programación orientada
a objetos nosotros los alumnos de sistemas computacionales debemos de hacer o
aprender lo que es el tema de la unidad 3 Herencia.
Lo que es la herencia en si es lo que hereda de las clases y se hacen las super
clases o subclases de las clases La herencia es una propiedad esencial de la
Programación Orientada a Objetos que consiste en la creación de nuevas clases a
partir de otras ya existentes. Y esto lo puedo explicar como un ejemplo Este término
ha sido prestado de la Biología donde afirmamos que un niño tiene la cara de su
padre, que ha heredado ciertas facetas físicas o del comportamiento de sus
progenitores en si toda la clase son heredadas y podemos decir que la herencia es
un mecanismo que permite la definición de una clase a partir de la definición de otra
ya existente. Y puede permitir que la herencia permite compartir automáticamente
métodos y datos entre clases, subclases y objetos en si de igual forma en este
trabajo podremos ver lo que es identificar en la clasificación de las herencias simple
y múltiple La reutilización de código se refiere al comportamiento y a las técnicas
que garantizan que una parte o la totalidad de un programa informático existente se
pueda emplear en la construcción de otro programa. De esta forma se aprovecha el
trabajo anterior, se economiza tiempo, y se reduce la redundancia. La funcionalidad
de una clase existente se puede extender al crear una nueva clase que se deriva
de ella

3
UNIDAD 3 HERENCIA
3.1 DEFINICIÓN: CLASE BASE Y CLASE
DERIVADA
La herencia es una propiedad esencial de la Programación Orientada a Objetos que
consiste en la creación de nuevas clases a partir de otras ya existentes. Como lo
puedo dar como ejemplo Este término ha sido prestado o relacionado con el de la
Biología donde afirmamos que un niño tiene la cara de su padre, que ha heredado
ciertas facetas físicas o del comportamiento de sus progenitores. La cual nos puede
ayudar mucho para poder ver lo que es la herencia y poder ver donde se puede
derivar una herencia de la clase
La herencia es la característica fundamental que distingue un lenguaje orientado a
objetos, como el C++ o Java, de otro convencional como C, BASIC, etc. Java
permite heredar a las clases características y conductas de una o varias clases
denominadas base. Y así que las clases que heredan de clases base se denominan
derivadas, y esto a su vez pueden ser clases bases para otras clases derivadas.
Se establece así una clasificación jerárquica, similar a la existente en Biología con
los animales y las plantas. Podamos entender lo que es una definición mas clara de
lo que es la herencia y como se encuentran las clases bases para así poder
aprender mas en esta unidad 3
La herencia ofrece una ventaja importante, en la programación ella en si le permite
la reutilización del código. Una vez que una clase ha sido depurada y probada, el
código fuente de dicha clase no necesita modificarse. Su funcionalidad se puede
cambiar derivando una nueva clase que herede la funcionalidad de la clase base y
le añada otros comportamientos. Reutilizando el código existente, el programador
ahorra al programador como el tiempo y ayuda a tener unos ingresos muy bueno
como es el dinero, ya que solamente tiene que verificar la nueva conducta que
proporciona la clase derivada.es una técnica que ayuda mucho al programador es
como nosotros lo conocemos el copiar y pegar es muy fácil pero en si podemos ver
o relacionar lo que es una reutilización del código que una ves programamos por
eso es importante que nosotros podamos guardar muy bien los códigos por que
algún día nos va a servir.
La programación en los entornos gráficos, en particular Windows, o Linux con el
lenguaje C++, es un ejemplo ilustrativo. Los compiladores como los de Borland y
Microsoft proporcionan librerías cuyas clases describen el aspecto y la conducta de
las ventanas, controles, menús, etc. Una de estas clases denominada Windows
describe el aspecto y la conducta de una ventana, tiene una función miembro
denominada Paint, que no dibuja nada en el área de trabajo de la misma. Definiendo

4
una clase derivada de TWindow, podemos hacer que se redefinan en ella la función
Paint para que dibuje una figura. Aprovechamos de este modo la ingente cantidad
y complejidad del código necesario para crear una ventana en un entorno gráfico.
Solamente, tendremos que añadir en la clase derivada el código necesario para
dibujar un rectángulo, una elipse, etc.
Ejemplo

public class Ventana {


protected int x;
protected int y;
protected int ancho;
protected int alto;
public Ventana(int x, int y, int ancho, int alto) {
this.x=x;
this.y=y;
this.ancho=ancho;
this.alto=alto;
}
//...
}
public void mostrar(){
System.out.println("posición : x="+x+", y="+y);
System.out.println("dimensiones : w="+ancho+", h="+alto);
}
public void cambiarDimensiones(int dw, int dh){
ancho+=dw;
alto+=dh;
}

5
3.2 CLASIFICACIÓN: HERENCIA SIMPLE Y
HERENCIA MÚLTIPLE
Pueden existir varias formas de La herencia es un mecanismo que permite la
definición de una clase a partir de la definición de otra ya existente. La herencia
permite compartir automáticamente métodos y datos entre clases, subclases y
objetos. Que entre las clases o en el lenguaje de programación de java que puede
ser un mecanismo que estas pueden ser el editar , la herencia simple en java o c++
es como una forma de mecanismo de abstracción creado para que el programador
se le pueda facilitar las cosas y mejorarlas en el diseño de los programas con eso
nosotros podemos crear nuevas clases a partir de clases ya pudo a ver hecho el
programador siempre y cuando tengan un tipo de relación especial y en la herencia
las clases que son derivadas pueden ser heredadas , los datos y las funciones que
son miembros de la clase base para que así las clases derivadas puedan ser
redefinidas
La herencia está fuertemente ligada a la reutilización del código en la POO. Esto es,
el código de cualquiera de las clases puede ser utilizado sin más que crear una
clase derivada de ella, o bien una subclase. Con mis palabras la herencia es algo
que te puedan dar en un futuro como dinero o en la familia son los rasgos físicos y
en la programación es la clase original la cual puede tener mas clases derivadas de
la original que pueden salir más y mas
Hay dos tipos de herencia que son muy importantes en la programación y que nos
sirven para muchas formas de programar y que son la Herencia Simple y la
Herencia Múltiple. La primera puede indicar lo que se pueden definir nuevas clases
solamente a partir de una clase inicia que siempre y cuando hay una clase original
va a ver una herencia simple y mientras que la segunda indica que se pueden definir
nuevas clases a partir de dos o más clases iniciales. Java sólo permite herencia
simple. Por que herencia múltiple no se puede en si pero poniendo unas palabras
lo puedes lograr
Herencia Múltiple
Todos sabemos que la herencia es un mecanismo propio de la programación
orientada a objetos POO. Y que nos permite crear clases a partir de otra, y las
cuales las unen vínculos sumamente estrechos, casi de familia. Es por ello que se
llama herencia y podemos hacerlo de una forma rápida y sencilla
Si buscamos modelar nuestras clases u objetos como propios de la realidad, todos
los conceptos de la orientación a objetos nos serán muy fácil de implementar
mientras programamos. Se nos dificultaría y no veríamos claro las cosas porque es
un tema muy fácil de entender

6
Ejemplo de herencia simple

Ejemplo de herencia múltiple

7
3.3 REUTILIZACIÓN DE MIEMBROS
HEREDADOS
La reutilización de código se refiere al comportamiento y a las técnicas que
garantizan que una parte o la totalidad de un programa informático existente se
pueda emplear en la construcción de otro programa. De esta forma se aprovecha el
trabajo anterior, se economiza tiempo, y se reduce la redundancia la forman en que
vuelven a utilizar el código es una forma de hacer el copiar y pegar pero para eso
nosotros debemos de guardar el código porque lo vamos a volver a usar y veremos
que es una forma utilizar el código y La manera más fácil de reutilizar código es
copiarlo total o parcialmente desde el programa antiguo al programa en desarrollo.
Pero es trabajoso mantener múltiples copias del mismo código, por lo que en
general se elimina la redundancia dejando el código reusable en un único lugar, y
llamándolo desde los diferentes programas. Este proceso se conoce como
abstracción. La abstracción puede verse claramente en las bibliotecas de software,
en las que se agrupan varias operaciones comunes a cierto dominio para facilitar el
desarrollo de programas nuevos. Hay bibliotecas para convertir información entre
diferentes formatos conocidos, acceder a dispositivos de almacenamiento externos,
proporcionar una interfaz con otros programas, manipular información de manera
conocida (como números, fechas, o cadenas de texto).
Para que el código existente se pueda reutilizar, debe definir alguna forma de
comunicación o interfaz. Esto se puede dar por llamadas a una subrutina, a un
objeto, o a una clase.
Como se ha comentado anteriormente la clase descendiente puede añadir sus
propios atributos y métodos pero también puede sustituir u ocultar los heredados.
En concreto:
1. Se puede declarar un nuevo atributo con el mismo identificador que uno
heredado, quedando este atributo oculto. Esta técnica no es recomendable.
2. Se puede declarar un nuevo método de instancia con la misma cabecera que el
de la clase ascendiente, lo que supone su sobreescritura. Por lo tanto, la
sobreescritura o redefinición consiste en que métodos adicionales declarados en la
clase descendiente con el mismo nombre, tipo de dato devuelto y número y tipo de
parámetros sustituyen a los heredados

8
3. Se puede declarar un nuevo método de clase con la misma cabecera que el de
Un método declarado con el modificador
4.final tampoco puede ser redefinido por una Se puede declarar un constructor de
la subclase que llame al de la superclase de forma implícita

9
3.4 REFERENCIA AL OBJETO DE LA CLASE
BASE
La funcionalidad de una clase existente se puede extender al crear una nueva clase
que se deriva de ella. La clase derivada hereda las propiedades de la clase base y
es posible agregar o reemplazar métodos y propiedades según sea necesario.
En C#, el operador :, que equivale a extends e implements en Java, define la
herencia e implementación de interfaces. La clase base siempre debe estar en el
extremo izquierdo en la declaración de clase.
Como Java, C# no admite herencia múltiple, lo que significa que las clases no
pueden heredar más de una clase. Sin embargo, se pueden utilizar interfaces para
ese propósito, de la misma manera que en Java.
El código siguiente define una clase denominada CoOrds con dos variables
miembro privadas x e y que representan la posición del punto. Se tiene acceso a
estas variables mediante propiedades denominadas X e Y, respectivamente:

public class CoOrds

private int x, y;

public CoOrds() // constructor

x = 0;

y = 0;

public int X

get { return x; }

set { x = value; }

10
public int Y

get { return y; }

set { y = value; }

11
3.5 CONSTRUCTORES Y DESTRUCTORES EN
CLASES DERIVADAS
Podemos decir que esto se hace como al instanciar objetos de clases derivadas
se inicia una cadena de invocaciones y se manda a llamar a los constructores en
las cuales el constructor de la clase derivada pueden mandar a llamar la clase que
fue hecha antes y así , antes de realizar sus propias tareas, invoca (ya sea implícita
o explícitamente) al constructor de su clase base. Y obvio Similarmente, si la clase
base fue derivada de otra clase, puede que el constructor de la clase base debe
invocar al constructor de la clase ubicada en el siguiente nivel superior de la
jerarquía, y así sucesivamente. Si no es así no se podrá hacer el instanciado puede
a ver errores a la hora de compilar el programa y va ser error de nosotros por que
no pudimos hacer nada . El último constructor que fue invocado en la cadena es el
constructor de la clase Object, de la clase cuyo cuerpo se ejecuta primero. Para
que no pueda a ver problema El cuerpo del constructor de la clase derivada se
ejecuta al final. El constructor de cada clase base inicializa las variables de instancia
que el objeto de la clase derivada hereda. Así podría a ser una instanciación pero
en fin eso fue lo que yo le entendí.

Destructores en clases derivadas

Cuando remueve de la memoria un objeto de una clase derivada, el recolector de


basura invoca al destructor del objeto. Esto inicia una cadena de invocaciones a
destructores, en donde el destructor de la clase derivada y los destructores de las
clases bases directas e indirectas se ejecutan en orden inverso al que se ejecutaron
los constructores, esto es, primero se ejecuta el destructor de la clase derivada y al
final se ejecuta el destructor de la clase base ubicada en el nivel superior de la
jerarquía. La ejecución de los destructores debe liberar todos los recursos que el
objeto adquirió, antes de que el recolector de basura reclame la memoria de ese
objeto. Cuando el recolector de basura invoca al destructor de un objeto de una
clase derivada, ese destructor realiza su tarea y después invoca al destructor de la
clase base. El proceso se repite hasta que se invoca al destructor de la clase Object.

12
13
3.6 REDEFINICIÓN DE MÉTODOS EN CLASES
DERIVADAS
En el lenguaje java permite redefinir miembros de la clase base en las clases
derivadas, y permite que el compilador emite una advertencia cuando detecta una
redefinición. En si es una advertencia (warning) y esto puede ser que envié un
mensaje y ese mensaje del compilador acerca de un posible problema. Sin
embargo, en este caso sí se genera código ejecutable (a diferencia del mensaje de
error). Redefinición de campos. El siguiente ejemplo muestra cómo reutilizar los
identificadores de los campos de la clase base en una clase derivada .se le puede
decir que es cuando el programa te permite darle un valor a la variable o darle otro
tipo de método para definir esa así el compilador te a avisa que debes de poner
otra definición a la clase bueno eso esa lo que yo más o menos entendí podría ser
que solo te avisa y puedes poner un mensaje para que te mande otro valor

14
CONCLUSIÓN
En la conclusión de este trabajo es que pude saber lo que es la clase base y la clase
derivada que la herencia y que es una propiedad muy esencial de la programación
hay objetos que pueden crear nuevas clases a partir de ya hechas otras que ya
existen, La herencia es la característica fundamental que distingue un lenguaje
orientado a objetos, como el C++ o Java, de otro convencional como C, BASIC, etc.
La funcionalidad de una clase existente se puede extender al crear una nueva clase
que se deriva de ella. La clase derivada hereda las propiedades de la clase base y
es posible agregar o reemplazar métodos y propiedades en si nosotros debemos o
debimos de ver aprendido lo que son los temas de la unidad 3 herencia en si es lo
que podamos aprender el objetivo de este trabajo es que nosotros al final de la
unidad sepamos lo que es la herencia y la clasificación a la manera más fácil de
reutilizar código es copiarlo total o parcialmente desde el programa antiguo al
programa en desarrollo. Pero es trabajoso mantener múltiples copias del mismo
código

15
Bibliografía
cesar, j. (2012). herencia en los lenguajes de
programacion . public works.
gomez gonzalez, e. (2008). progrmacion orientada
objetos. los angeles: adventud .
gomez, d. (2003). herencia en programacion . ciudad de
mexico : Almadía.
gonzales , j. m. (2005). programacion en java:concepto
de herencia. nueva york: Akal.
romero diaz , d. (s.f.).
saldivar, a. d. (2007). la programacion en java. buston:
Alba.

16