sesi n7 Herencia a polimorfismo V2
en java
Facilitadores:
• ISC. MARIBEL BUENO QUIÑONES
• MC. MA. ELENA MONTES ALMANZA
• ME. PEDRO CELESTINO RAMIREZ
HERENCIA Y
POLIMORFISMO
Sobreescritura y Sobrecarga
Herencia.
• Esto es una de
las bases de la
reutilización de
código, en lugar
de copiar y
pegar.
extends
después del
nombre de la
clase.
Definir una
clase tomando
como base a
otra clase yaexistente.
Se
especifica
agregando
la claúsula :
Los
constructores
son utilizados,
pero no
heredados.
Al heredar de
una clase
base,
heredaremos
:
•.
class Subclase extends SuperClase{ }
• atributos
• métodos,
Mecanismo para extender clases
• Una clase
adquiere o hereda
los atributos y
métodos de otra.
• La clase que
hereda se llama
subclase.
• Prueba de
validez:
• La clase base se
llamasuperclase.
relación
“UnLa
objeto
de tipo
subclase debe ser
“Es un”
también
de tipo
superclase.”
Mecanismo para extender clases
Ejemplo:
Vehiculo
start(): void
extends
Coche
drive(): void
Ejemplo 2:
Variable de instancia
extends
Resultado:
Herencia
Realizar la siguiente
actividad…
Ejercicio 5, 6 y 7
Polimorfismo
Hay varias
formas de
polimorfismo
Cuando invocamos el mismonombre de método sobre
instancias de distinta clase
(sobreescritura)
cuando creamos múltiples
constructores
cuando a través del subtipo
asignamos una instancia de una
subclase a una referencia a la
clase base.
Sobreescritura de métodos
Una subclase puede
modificar el comportamiento
heredado de la superclase,
substituyendo (overriding)
métodos.
La subclase crea un método
funcionalmentediferente,
pero con el mismo:
Nombre
Tipo de retorno
Lista de Argumentos
class Camaleón
se reproduce ()
come()
duerme()
cambiaColor()
class Animal
duerme()
come()
se reproduce()
class Mamífero
come()
class Iguana
duerme() iguana
cambiaColor()
Métodos de Instancia
Métodos de Clase
Un método de instancia es
una subclase con la misma
firma (nombre, más el
número y tipo de susparámetros) y tipo de
regreso que un método de
instancia en la superclase
sobreescribe el método
de la superclase.
Si una subclase define
un método de clase
con la misma firma que
un método de clase en
la superclase, el
método en la subclase
esconde el que está
en la superclase.
Sobreescritura de métodos de
instancia
public class Empleado {
public class Gerente extends Empleado{
protected Stringnombre ;
protected String departamento;
protected double salario;
protected Date Fechanac;
public String getDetalles() {
public String getDetalles() {
return “Nombre: “ + nombre + “\n” +
“Salario “ + salario;
return “Nombre: “ + nombre + “\n” + “Salario:
“ + salario + "\n" +
“Gerente de: “ + departamento;
}
}
}
}
Sobreescritura de métodos de
clase
public class Cat extends Animal {
publicstatic void ClassMethod() {
public class Animal {
ystem.out.println("El método de
clase en Cat.");
}
public static void ClassMethod() {
public void InstanceMethod() {
System.out.println("El
método de clase en Animal.");
}
public void InstanceMethod() {
System.out.println("El método
de instancia en Cat.");
}
public static void main(String[]args)
{
Cat myCat = new Cat();System.out.println("El
método de instancia en
Animal.");
Animal myAnimal = myCat;
Animal. ClassMethod();
}
myAnimal. InstanceMethod();
}
La salida de este programa es
como sigue:
El método de clase en Animal.
El método de instancia en Cat.
}
}
la versión del método escondido que se invoca es
el que está en la superclase, y la versión del
método sobreescrito que se invoca es la que está
en la subclase.
.Accediendo a un método
sobreescrito de una Superclase
Si su método
sobreescribe
uno de los
métodos de una
superclase,
Se puede invocar
al método
sobreescrito a
través del uso de
la palabra clave
public class Superclass {
public void printMethod() {
System.out.println("Impreso en
Superclass.");
}
}
public class Subclass extends Superclass {
public void printMethod() {
super.printMethod();...
Regístrate para leer el documento completo.