clase - herencia
DESCRIPTION
LOLTRANSCRIPT
![Page 1: Clase - Herencia](https://reader035.vdocumento.com/reader035/viewer/2022072008/55cf8fac550346703b9eac6c/html5/thumbnails/1.jpg)
Sistemas II Herencia
Rubén Francisco Manrique
COD:180056
![Page 2: Clase - Herencia](https://reader035.vdocumento.com/reader035/viewer/2022072008/55cf8fac550346703b9eac6c/html5/thumbnails/2.jpg)
Herencia
• Es una forma de reutilización de software en la que se
crea una nueva clase absorbiendo los miembros de una
clase existente, y se mejoran con nuevas capacidades,
o con modificaciones en las capacidades ya existentes.
• Con la herencia, los programadores ahorran tiempo
durante el desarrollo, al reutilizar software probado y
depurado de alta calidad.
Sistemas II: Rubén Francisco Manrique 2
![Page 3: Clase - Herencia](https://reader035.vdocumento.com/reader035/viewer/2022072008/55cf8fac550346703b9eac6c/html5/thumbnails/3.jpg)
Herencia
• Al crear una clase, en vez de declarar miembros
completamente nuevos, el programador puede designar
que la nueva clase herede los miembros de una clase
existente. Esta clase existente se conoce como
superclase, y la nueva clase se conoce como
subclase.
• Una subclase generalmente agrega sus propios campos
y métodos. Por lo tanto, una subclase es más específica
que su superclase y representa a un grupo más
especializado de objetos.
Sistemas II: Rubén Francisco Manrique 3
![Page 4: Clase - Herencia](https://reader035.vdocumento.com/reader035/viewer/2022072008/55cf8fac550346703b9eac6c/html5/thumbnails/4.jpg)
Superclases y subclases
• Relación “es un”:
– En la geometría un rectángulo es un cuadrilátero.
– En Java puede decirse que la clase Rectangulo hereda
de la clase Cuadrilatero.
– En este contexto, la clase Cuadrilátero es una
superclase, y la clase Rectángulo es una subclase.
Sistemas II: Rubén Francisco Manrique 4
![Page 5: Clase - Herencia](https://reader035.vdocumento.com/reader035/viewer/2022072008/55cf8fac550346703b9eac6c/html5/thumbnails/5.jpg)
Superclases y subclases
Sistemas II: Rubén Francisco Manrique 5
![Page 6: Clase - Herencia](https://reader035.vdocumento.com/reader035/viewer/2022072008/55cf8fac550346703b9eac6c/html5/thumbnails/6.jpg)
Jerarquía de Herencia
Sistemas II: Rubén Francisco Manrique 6
![Page 7: Clase - Herencia](https://reader035.vdocumento.com/reader035/viewer/2022072008/55cf8fac550346703b9eac6c/html5/thumbnails/7.jpg)
Problema con la herencia
• A pesar de que un método de superclase sea apropiado
para una subclase, a menudo esa subclase requiere una
versión personalizada del método.
• En dichos casos, la subclase puede sobrescribir
(redefinir) el método de la superclase con una
implementación apropiada.
Sistemas II: Rubén Francisco Manrique 7
![Page 8: Clase - Herencia](https://reader035.vdocumento.com/reader035/viewer/2022072008/55cf8fac550346703b9eac6c/html5/thumbnails/8.jpg)
Miembros protected
• Los miembros public de una clase son accesibles en
cualquier parte en donde el programa tenga una
referencia a un objeto de esa clase.
• Los miembros private de una clase son accesibles sólo
dentro de la misma clase. Los miembros private de una
superclase no son heredados por sus subclases.
• El uso del acceso protected ofrece un nivel intermedio
de acceso entre public y private.
• Los miembros protected de una superclase pueden ser
utilizados por los miembros de esa superclase, por los
miembros de sus subclases.
Sistemas II: Rubén Francisco Manrique 8
![Page 9: Clase - Herencia](https://reader035.vdocumento.com/reader035/viewer/2022072008/55cf8fac550346703b9eac6c/html5/thumbnails/9.jpg)
Ejemplo
• En una compañía, a los empleados por comisión (que se
representarán como objetos de una superclase) se les
paga un porcentaje de sus ventas, mientras que los
empleados por comisión con salario base (que se
representarán como objetos de una subclase) reciben
un salario base, más un porcentaje de sus ventas.
Sistemas II: Rubén Francisco Manrique 9
![Page 10: Clase - Herencia](https://reader035.vdocumento.com/reader035/viewer/2022072008/55cf8fac550346703b9eac6c/html5/thumbnails/10.jpg)
Taller
• Implemente las clases
especificadas en el diagrama
de clases usando herencia.
• Escriba un programa de
prueba (TEST).
• Nota: Tenga en cuenta que
existen dos constructores.
Sistemas II: Rubén Francisco Manrique 10