El documento describe los conceptos de clase base, clase derivada y herencia en programación orientada a objetos. Una clase base no depende de ninguna otra clase y puede ser la clase principal de un programa. Una clase derivada depende de una clase base y hereda sus atributos y métodos. Existen dos tipos de herencia: herencia simple donde una clase se deriva de una sola clase base, y herencia múltiple donde una clase se puede derivar de múltiples clases bases.
El documento describe los conceptos de clase base, clase derivada y herencia en programación orientada a objetos. Una clase base no depende de ninguna otra clase y puede ser la clase principal de un programa. Una clase derivada depende de una clase base y hereda sus atributos y métodos. Existen dos tipos de herencia: herencia simple donde una clase se deriva de una sola clase base, y herencia múltiple donde una clase se puede derivar de múltiples clases bases.
Descripción original:
Unidad 3 desarrollada de la materia de Progrmación Orientada a Objetos
El documento describe los conceptos de clase base, clase derivada y herencia en programación orientada a objetos. Una clase base no depende de ninguna otra clase y puede ser la clase principal de un programa. Una clase derivada depende de una clase base y hereda sus atributos y métodos. Existen dos tipos de herencia: herencia simple donde una clase se deriva de una sola clase base, y herencia múltiple donde una clase se puede derivar de múltiples clases bases.
El documento describe los conceptos de clase base, clase derivada y herencia en programación orientada a objetos. Una clase base no depende de ninguna otra clase y puede ser la clase principal de un programa. Una clase derivada depende de una clase base y hereda sus atributos y métodos. Existen dos tipos de herencia: herencia simple donde una clase se deriva de una sola clase base, y herencia múltiple donde una clase se puede derivar de múltiples clases bases.
Descargue como DOC, PDF, TXT o lea en línea desde Scribd
Descargar como doc, pdf o txt
Está en la página 1de 3
3.
1 Definicin: Clase base y Clase derivada
La herencia es una propiedad esencial de la Programacin Orientada a Objetos que consiste en la creacin de nuevas clases a partir de otras ya existentes. Este trmino ha sido prestado de la Biologa donde afirmamos que un nio tiene la cara de su padre, que ha heredado ciertas facetas fsicas o del comportamiento de sus progenitores. Una clase base es aquella que no dependen ninguno de sus atributos u objetos de la clase de alguna otra clase, se podra decir que, en trminos de herencia, sera la clase padre, la clase que se mantiene fija, en el aspecto de herencia. Es tambin por as llamarlo la clase principal de un programa, sera la clase primaria sin incluir la clase main en donde se corre todo el programa en s. Adems de las clases bases, existen las llamadas clases derivadas, son clases que dependen de las clases bases. Estas heredan atributos y mtodos de la clase padre. 3.2 Clasificacin: Herencia simple y Herencia mltiple La herencia es un mecanismo que permite la definicin de una clase a partir de la definicin de otra ya existente. La herencia permite compartir automticamente mtodos y datos entre clases, subclases y objetos. La herencia est fuertemente ligada a la reutilizacin del cdigo en la POO. Esto es, el cdigo de cualquiera de las clases puede ser utilizado sin ms que crear una clase derivada de ella, o bien una subclase. Hay dos tipos de herencia: Herencia Simple y Herencia Mltiple. La primera indica que se pueden definir nuevas clases solamente a partir de una clase inicial mientras que la segunda indica que se pueden definir nuevas clases a partir de dos o ms clases iniciales. Java slo permite herencia simple. 3.3 Reutilizacin de miembros heredados La herencia ofrece una ventaja importante, permite la reutilizacin del cdigo. Una vez que una clase ha sido depurada y probada, el cdigo 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 aada otros comportamientos. Reutilizando el cdigo existente, el programador ahorra tiempo y dinero, ya que solamente tiene que verificar la nueva conducta que proporciona la clase derivada. La manera ms fcil de reutilizar cdigo es copiarlo total o parcialmente desde el programa antiguo al programa en desarrollo. Pero es trabajoso mantener mltiples copias del mismo cdigo, por lo que en general se elimina la redundancia dejando el cdigo reusable en un nico lugar, y llamndolo desde los diferentes programas. Este proceso se conoce como abstraccin.
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 mtodos y propiedades segn sea necesario.
3.5 Constructores y destructores en clases derivadas
Al instanciar objetos de clases derivadas se inicia una cadena de invocaciones a constructores en las cuales el constructor de la clase derivada, antes de realizar sus propias tareas, invoca (ya sea implcita o explcitamente) al constructor de su clase base. Similarmente, si la clase base fue derivada de otra clase, el constructor de la clase base debe invocar al constructor de la clase ubicada en el siguiente nivel superior de la jerarqua, y as sucesivamente. El ltimo constructor invocado en la cadena es el constructor de la clase Object, cuyo cuerpo se ejecuta primero. 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. 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 jerarqua. La ejecucin 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 despus invoca al destructor de la clase base. El proceso se repite hasta que se invoca al destructor de la clase Object. 3.6 Redefinicin de Mtodos en clases derivadas El lenguaje Java permite redefinir miembros de la clase base en las clases derivadas, pero el compilador emite una advertencia cuando detecta una redefinicin. Una advertencia (warning) es un mensaje del compilador acerca de un posible problema. Sin embargo, en este caso s se genera cdigo ejecutable (a diferencia del mensaje de error). Redefinicin de campos. El siguiente ejemplo
muestra cmo reutilizar los identificadores de los campos de la clase base en una clase derivada.