SlideShare una empresa de Scribd logo
1 de 3
Herencia en Java
La idea de la herencia es permitir la creación de nuevas clases basadas en clases
existentes.
Cuando heredamos de una clase existente, reusamos (o heredamos) métodos y
campos, y agregamos nuevos campos y métodos para cumplir con la situación
nueva.
Cada vez que encontremos la relación "es-un" entre dos clases, estamos ante la
presencia de herencia.
La clase ya existente es llamada superclass, o clase base, o clase padre.
La clase nueva es llamada subclase, clase derivada, o clase hija.
A través de la herencia podemos agregar nuevos campos, y podemos agregar o sobre
montar métodos (override). Sobre montar un método es redefinirlo en la case heredada.
Destacar uso de super para invocar al constructor de la clase base y para invocar a métodos
sobremontados.

Jerarquía de Herencia

Polimorfismo
En Java una variable o nombre usado para referirse a un objeto de una clase X
puede usarse para referirse a cualquier objeto de cualquier subclase de la clase X.
Por ejemplo: Si tenemos Employee e;
e= new Employee(...); o
e= new Manager(...);
Esto también aplica a arreglos de Employee, cuyas entradas podrían referirse a
instancias de cualquier subclase de Employee.
El inverso no es válido. No se puede asignar una instancia de la superclase a un
nombre para la subclase.
Esta es una forma de polimorfismo por quee puede referirse a un Employee o a
un Manager.

Ligado Dinámico
Es importante entender qué método es aplicado al invocar uno a un objeto que
se puede referir a instancias de distinta clase.
Al momento de la compilación el compilador intenta resolver el método que
corresponde según su nombre y parámetro. Si la superclase y la clase base tiene
definido el mismo método ¿Cuál se llama?. Si el método en la clase declarada
para la variable no es privado, static, o final, se invocará en forma dinámica. Esto
es, se invocará el método definido según el objeto referenciado por el nombre y
no según la declaración del nombre. Por ello, si una clase derivada redefine el
mismo método, éste será invocado.

Casting
Cómo podemos acceder a los métodos definido en una clase derivada pero no en
la base? Se debe hacer un cambio de tipo forzado.
Por ejemplo:
Employee e= new Manager(..);
Usando e no podemos acceder a los métodos sólo presentes en Manager.
Si queremos hacerlo, usamos:
Manager m = (Manager) e;
Ahora sí podemos invocar todos los métodos de Manager sobre m. ¿Cómo
sabemos que e aloja una instancia de Manager? Lo podemos preguntar con el
operador instanceof.
if (e instance of Manager) {
m = (Manager) e;
.....
}

Clases Abstractas (abstractclasses)
Llevando la idea de herencia a un extremo podemos pensar en buenas clases
para representar un grupo pero que no tienen instancias propias. Por ejemplo
Forma como clase base de Triangulo, Circulo, Cuadrado. Forma puede indicar
todo el comportamiento válido para una forma pero no puede instanciarse por si
mismo. En ente caso Forma debe declararse como clase abstracta por tener al
menos un método declarado pero no implementado.
publicabstractclass Forma {
...
publicabstractdoublearea();
..
}

Superclase Object
Toda clase en Java hereda de la clase Object. Ésta no requiere ser indicada en
forma explícita. Esto permite que podamos agrupar en forma genérica elementos
de cualquier clase. En esta clase hay métodos como equals() y toString() que en
la mayoría de loa casos conviene sobremontar. ver documentación de clase
Object.

Programación Genérica (GenericProgramming)
Se le llama al hecho que podamos crear código válido para cualquier tipo de
dato específico. Porejemplo en algunaclasepodríamosincorporar:
static int find (Object [ ] a , Object key)
{
int i;
for (i=0; i <a.length; i++)
if (a[i].equals(key) return i; // encontrado
return -1;
// no exitoso
}

Más contenido relacionado

La actualidad más candente

Que es una clase en java
Que es una clase en javaQue es una clase en java
Que es una clase en javaAndres Vasquez
 
Análisis y diseño oo con umldclases
Análisis y diseño oo con umldclasesAnálisis y diseño oo con umldclases
Análisis y diseño oo con umldclasesRoberto Garcia
 
Herencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosHerencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosMario Villaseñor
 
Presentación Tema 5, Libro Programación C#
Presentación Tema 5, Libro Programación C#Presentación Tema 5, Libro Programación C#
Presentación Tema 5, Libro Programación C#Odanis Tiburcio
 
09 Clases Abstractas E Interfaces
09   Clases Abstractas E Interfaces09   Clases Abstractas E Interfaces
09 Clases Abstractas E InterfacesNetwork Sens
 
java (clases,herencias,encapsulamiento,.. )
java (clases,herencias,encapsulamiento,.. )java (clases,herencias,encapsulamiento,.. )
java (clases,herencias,encapsulamiento,.. )brayan0015
 
Clases abstractas java metodos abstract class api ejemplo ejercicio
Clases abstractas java metodos abstract class api ejemplo ejercicioClases abstractas java metodos abstract class api ejemplo ejercicio
Clases abstractas java metodos abstract class api ejemplo ejercicioJose Luis Moreno Arcos
 
Php orientado a_objetos
Php orientado a_objetosPhp orientado a_objetos
Php orientado a_objetosJose Ney Quil
 
Correcion Programacion
Correcion ProgramacionCorrecion Programacion
Correcion Programacionjzgeorge
 

La actualidad más candente (20)

Clase
ClaseClase
Clase
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Herencia Y Polimorfismo
Herencia Y PolimorfismoHerencia Y Polimorfismo
Herencia Y Polimorfismo
 
Que es una clase en java
Que es una clase en javaQue es una clase en java
Que es una clase en java
 
Leguaje de programacion C#
Leguaje de programacion C#Leguaje de programacion C#
Leguaje de programacion C#
 
Sentencia this
Sentencia thisSentencia this
Sentencia this
 
Paradigma orientado a objetos
Paradigma orientado a objetosParadigma orientado a objetos
Paradigma orientado a objetos
 
Análisis y diseño oo con umldclases
Análisis y diseño oo con umldclasesAnálisis y diseño oo con umldclases
Análisis y diseño oo con umldclases
 
Herencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosHerencia - Programación Orientada a Objetos
Herencia - Programación Orientada a Objetos
 
Php adriana vllacis
Php adriana vllacisPhp adriana vllacis
Php adriana vllacis
 
Presentación Tema 5, Libro Programación C#
Presentación Tema 5, Libro Programación C#Presentación Tema 5, Libro Programación C#
Presentación Tema 5, Libro Programación C#
 
09 Clases Abstractas E Interfaces
09   Clases Abstractas E Interfaces09   Clases Abstractas E Interfaces
09 Clases Abstractas E Interfaces
 
java (clases,herencias,encapsulamiento,.. )
java (clases,herencias,encapsulamiento,.. )java (clases,herencias,encapsulamiento,.. )
java (clases,herencias,encapsulamiento,.. )
 
Clases abstractas java metodos abstract class api ejemplo ejercicio
Clases abstractas java metodos abstract class api ejemplo ejercicioClases abstractas java metodos abstract class api ejemplo ejercicio
Clases abstractas java metodos abstract class api ejemplo ejercicio
 
Programacion
ProgramacionProgramacion
Programacion
 
Clases abstractas e interfaces en java
Clases abstractas e interfaces en javaClases abstractas e interfaces en java
Clases abstractas e interfaces en java
 
Php orientado a_objetos
Php orientado a_objetosPhp orientado a_objetos
Php orientado a_objetos
 
Correcion Programacion
Correcion ProgramacionCorrecion Programacion
Correcion Programacion
 
Curso Java - Programación Digital
Curso Java - Programación DigitalCurso Java - Programación Digital
Curso Java - Programación Digital
 
Herencia Y Polimorfismo
Herencia Y PolimorfismoHerencia Y Polimorfismo
Herencia Y Polimorfismo
 

Similar a Herencia en java

U8.- Programacion Orientada a objetos II (2).pdf
U8.- Programacion Orientada a objetos II (2).pdfU8.- Programacion Orientada a objetos II (2).pdf
U8.- Programacion Orientada a objetos II (2).pdfJCarlosCrespo
 
Herencia y Polimorfismo
Herencia y PolimorfismoHerencia y Polimorfismo
Herencia y Polimorfismonestor_moren
 
Clases y subclases
Clases y subclasesClases y subclases
Clases y subclasesmartaferrari
 
METODOS HEREDADOS EN LA PROGRAMACION .pptx
METODOS HEREDADOS EN LA PROGRAMACION .pptxMETODOS HEREDADOS EN LA PROGRAMACION .pptx
METODOS HEREDADOS EN LA PROGRAMACION .pptxjuan gonzalez
 
Clases en Java y todo lo relacionado
Clases en Java y todo lo relacionadoClases en Java y todo lo relacionado
Clases en Java y todo lo relacionadoJuan Carlos Espinoza
 
DAW - Desarrollo de clases
DAW - Desarrollo de clasesDAW - Desarrollo de clases
DAW - Desarrollo de clasesvay82
 
02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcionalJuan Rodríguez
 
Presentacion Java
Presentacion JavaPresentacion Java
Presentacion Javamaeusogo
 
Teoria-de-la-unidad-2
Teoria-de-la-unidad-2Teoria-de-la-unidad-2
Teoria-de-la-unidad-2Nequiztron
 
Java morld cap2 [CURSO JAVA]
Java morld cap2 [CURSO JAVA]Java morld cap2 [CURSO JAVA]
Java morld cap2 [CURSO JAVA]Hack '
 
Programación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoProgramación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoAngel Vázquez Patiño
 

Similar a Herencia en java (20)

U8.- Programacion Orientada a objetos II (2).pdf
U8.- Programacion Orientada a objetos II (2).pdfU8.- Programacion Orientada a objetos II (2).pdf
U8.- Programacion Orientada a objetos II (2).pdf
 
Herencia y Polimorfismo
Herencia y PolimorfismoHerencia y Polimorfismo
Herencia y Polimorfismo
 
Guía Herencia PO_O
Guía Herencia PO_OGuía Herencia PO_O
Guía Herencia PO_O
 
Reporte
ReporteReporte
Reporte
 
Clases y subclases
Clases y subclasesClases y subclases
Clases y subclases
 
METODOS HEREDADOS EN LA PROGRAMACION .pptx
METODOS HEREDADOS EN LA PROGRAMACION .pptxMETODOS HEREDADOS EN LA PROGRAMACION .pptx
METODOS HEREDADOS EN LA PROGRAMACION .pptx
 
JAVA 00 - TEMA 05 - HERENCIA
JAVA 00 - TEMA 05 - HERENCIAJAVA 00 - TEMA 05 - HERENCIA
JAVA 00 - TEMA 05 - HERENCIA
 
Clases en Java y todo lo relacionado
Clases en Java y todo lo relacionadoClases en Java y todo lo relacionado
Clases en Java y todo lo relacionado
 
DAW - Desarrollo de clases
DAW - Desarrollo de clasesDAW - Desarrollo de clases
DAW - Desarrollo de clases
 
03 java poo_parte_2
03 java poo_parte_203 java poo_parte_2
03 java poo_parte_2
 
10.herencia en c++
10.herencia en c++10.herencia en c++
10.herencia en c++
 
Presentacion de clases en c#
Presentacion de clases en c#Presentacion de clases en c#
Presentacion de clases en c#
 
08 Herencia
08   Herencia08   Herencia
08 Herencia
 
02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional
 
Clase y Herencia en VB
Clase y Herencia en VBClase y Herencia en VB
Clase y Herencia en VB
 
Presentacion Java
Presentacion JavaPresentacion Java
Presentacion Java
 
Teoria-de-la-unidad-2
Teoria-de-la-unidad-2Teoria-de-la-unidad-2
Teoria-de-la-unidad-2
 
Laboratorio clase abstract
Laboratorio clase abstractLaboratorio clase abstract
Laboratorio clase abstract
 
Java morld cap2 [CURSO JAVA]
Java morld cap2 [CURSO JAVA]Java morld cap2 [CURSO JAVA]
Java morld cap2 [CURSO JAVA]
 
Programación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoProgramación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismo
 

Más de jbersosa

Las excepciones standar
Las excepciones standarLas excepciones standar
Las excepciones standarjbersosa
 
Mas sobre excepciones
Mas sobre excepcionesMas sobre excepciones
Mas sobre excepcionesjbersosa
 
Estructuras de control try catch
Estructuras de control try catchEstructuras de control try catch
Estructuras de control try catchjbersosa
 
Clasen1java
Clasen1javaClasen1java
Clasen1javajbersosa
 
Programación java1
Programación java1Programación java1
Programación java1jbersosa
 
Tercercortesistop
TercercortesistopTercercortesistop
Tercercortesistopjbersosa
 
Encapsulacion
EncapsulacionEncapsulacion
Encapsulacionjbersosa
 
Administracion de la memoria principal
Administracion de  la memoria principalAdministracion de  la memoria principal
Administracion de la memoria principaljbersosa
 
Auditoria 2
Auditoria 2Auditoria 2
Auditoria 2jbersosa
 
Auditoriasistemasi 150703002656-lva1-app6891
Auditoriasistemasi 150703002656-lva1-app6891Auditoriasistemasi 150703002656-lva1-app6891
Auditoriasistemasi 150703002656-lva1-app6891jbersosa
 
Auditoria informatica
Auditoria informaticaAuditoria informatica
Auditoria informaticajbersosa
 
Auditoria de sistemas (1)
Auditoria de sistemas (1)Auditoria de sistemas (1)
Auditoria de sistemas (1)jbersosa
 
Auditoría de sistemas de información presentación
Auditoría de sistemas de información presentaciónAuditoría de sistemas de información presentación
Auditoría de sistemas de información presentaciónjbersosa
 
Realizar investigación y hacer un análisis por cada tema asignado al particip...
Realizar investigación y hacer un análisis por cada tema asignado al particip...Realizar investigación y hacer un análisis por cada tema asignado al particip...
Realizar investigación y hacer un análisis por cada tema asignado al particip...jbersosa
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativosjbersosa
 
Estructura de una red
Estructura de una redEstructura de una red
Estructura de una redjbersosa
 
Proyectodeprogramacinidesegundocorte2015 2
Proyectodeprogramacinidesegundocorte2015 2Proyectodeprogramacinidesegundocorte2015 2
Proyectodeprogramacinidesegundocorte2015 2jbersosa
 
Bases de datos mysql y repotes usando jasper report
Bases de datos mysql y repotes usando jasper reportBases de datos mysql y repotes usando jasper report
Bases de datos mysql y repotes usando jasper reportjbersosa
 

Más de jbersosa (20)

Las excepciones standar
Las excepciones standarLas excepciones standar
Las excepciones standar
 
Mas sobre excepciones
Mas sobre excepcionesMas sobre excepciones
Mas sobre excepciones
 
Estructuras de control try catch
Estructuras de control try catchEstructuras de control try catch
Estructuras de control try catch
 
Main
MainMain
Main
 
Clasen1java
Clasen1javaClasen1java
Clasen1java
 
Programación java1
Programación java1Programación java1
Programación java1
 
Tercercortesistop
TercercortesistopTercercortesistop
Tercercortesistop
 
Encapsulacion
EncapsulacionEncapsulacion
Encapsulacion
 
Administracion de la memoria principal
Administracion de  la memoria principalAdministracion de  la memoria principal
Administracion de la memoria principal
 
Auditoria 2
Auditoria 2Auditoria 2
Auditoria 2
 
Auditoriasistemasi 150703002656-lva1-app6891
Auditoriasistemasi 150703002656-lva1-app6891Auditoriasistemasi 150703002656-lva1-app6891
Auditoriasistemasi 150703002656-lva1-app6891
 
Auditoria informatica
Auditoria informaticaAuditoria informatica
Auditoria informatica
 
Auditoria de sistemas (1)
Auditoria de sistemas (1)Auditoria de sistemas (1)
Auditoria de sistemas (1)
 
Auditoría de sistemas de información presentación
Auditoría de sistemas de información presentaciónAuditoría de sistemas de información presentación
Auditoría de sistemas de información presentación
 
Realizar investigación y hacer un análisis por cada tema asignado al particip...
Realizar investigación y hacer un análisis por cada tema asignado al particip...Realizar investigación y hacer un análisis por cada tema asignado al particip...
Realizar investigación y hacer un análisis por cada tema asignado al particip...
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Php
PhpPhp
Php
 
Estructura de una red
Estructura de una redEstructura de una red
Estructura de una red
 
Proyectodeprogramacinidesegundocorte2015 2
Proyectodeprogramacinidesegundocorte2015 2Proyectodeprogramacinidesegundocorte2015 2
Proyectodeprogramacinidesegundocorte2015 2
 
Bases de datos mysql y repotes usando jasper report
Bases de datos mysql y repotes usando jasper reportBases de datos mysql y repotes usando jasper report
Bases de datos mysql y repotes usando jasper report
 

Herencia en java

  • 1. Herencia en Java La idea de la herencia es permitir la creación de nuevas clases basadas en clases existentes. Cuando heredamos de una clase existente, reusamos (o heredamos) métodos y campos, y agregamos nuevos campos y métodos para cumplir con la situación nueva. Cada vez que encontremos la relación "es-un" entre dos clases, estamos ante la presencia de herencia. La clase ya existente es llamada superclass, o clase base, o clase padre. La clase nueva es llamada subclase, clase derivada, o clase hija. A través de la herencia podemos agregar nuevos campos, y podemos agregar o sobre montar métodos (override). Sobre montar un método es redefinirlo en la case heredada. Destacar uso de super para invocar al constructor de la clase base y para invocar a métodos sobremontados. Jerarquía de Herencia Polimorfismo En Java una variable o nombre usado para referirse a un objeto de una clase X puede usarse para referirse a cualquier objeto de cualquier subclase de la clase X. Por ejemplo: Si tenemos Employee e; e= new Employee(...); o e= new Manager(...); Esto también aplica a arreglos de Employee, cuyas entradas podrían referirse a instancias de cualquier subclase de Employee. El inverso no es válido. No se puede asignar una instancia de la superclase a un nombre para la subclase. Esta es una forma de polimorfismo por quee puede referirse a un Employee o a
  • 2. un Manager. Ligado Dinámico Es importante entender qué método es aplicado al invocar uno a un objeto que se puede referir a instancias de distinta clase. Al momento de la compilación el compilador intenta resolver el método que corresponde según su nombre y parámetro. Si la superclase y la clase base tiene definido el mismo método ¿Cuál se llama?. Si el método en la clase declarada para la variable no es privado, static, o final, se invocará en forma dinámica. Esto es, se invocará el método definido según el objeto referenciado por el nombre y no según la declaración del nombre. Por ello, si una clase derivada redefine el mismo método, éste será invocado. Casting Cómo podemos acceder a los métodos definido en una clase derivada pero no en la base? Se debe hacer un cambio de tipo forzado. Por ejemplo: Employee e= new Manager(..); Usando e no podemos acceder a los métodos sólo presentes en Manager. Si queremos hacerlo, usamos: Manager m = (Manager) e; Ahora sí podemos invocar todos los métodos de Manager sobre m. ¿Cómo sabemos que e aloja una instancia de Manager? Lo podemos preguntar con el operador instanceof. if (e instance of Manager) { m = (Manager) e; ..... } Clases Abstractas (abstractclasses) Llevando la idea de herencia a un extremo podemos pensar en buenas clases para representar un grupo pero que no tienen instancias propias. Por ejemplo Forma como clase base de Triangulo, Circulo, Cuadrado. Forma puede indicar todo el comportamiento válido para una forma pero no puede instanciarse por si mismo. En ente caso Forma debe declararse como clase abstracta por tener al menos un método declarado pero no implementado. publicabstractclass Forma { ...
  • 3. publicabstractdoublearea(); .. } Superclase Object Toda clase en Java hereda de la clase Object. Ésta no requiere ser indicada en forma explícita. Esto permite que podamos agrupar en forma genérica elementos de cualquier clase. En esta clase hay métodos como equals() y toString() que en la mayoría de loa casos conviene sobremontar. ver documentación de clase Object. Programación Genérica (GenericProgramming) Se le llama al hecho que podamos crear código válido para cualquier tipo de dato específico. Porejemplo en algunaclasepodríamosincorporar: static int find (Object [ ] a , Object key) { int i; for (i=0; i <a.length; i++) if (a[i].equals(key) return i; // encontrado return -1; // no exitoso }