UT4. Java
conceptos de herencia
eugeniaperez.es


UT 4: Java

1. Conceptos de herencia
Text
eugeniaperez.es

herencia
¿Modificadores de acceso?
public class Person {
protected String name;
protected int age;
public Person(String name, int age){
this.name = name;
this.age = age;
}
private void noHeredable(){
System.out.println("No se hereda");
}
}
UT 4: Java

1. Conceptos de herencia
Text
eugeniaperez.es

sobreescritura
Ocultación de métodos
public class Person {
protected String name;
protected int age;
public Person(String name, int age){
this.name = name;
this.age = age;
}
public void greet(){
System.out.println("Hola, soy una persona!");
}
}
public class Student extends Person{
...
public void greet(){
System.out.println("Hola, soy un estudiante!");
}
}
UT 4: Java

1. Conceptos de herencia
Text
eugeniaperez.es

sobrecarga
Definimos la misma acción dentro de la misma clase de dos formas diferentes.
Distinto número/tipo de parámetros.
public class Student extends Person{
...
public void greet(){
System.out.println("Hola, soy un estudiante!");
}
public void greet(String name){
System.out.println("Método sobrecargado: soy el estudiante "+name);
}
}
UT 4: Java

1. Conceptos de herencia
Text
eugeniaperez.es

clase abstracta
Es una clase que tiene métodos abstractos (solo la cabecera, no tienen cuerpo)
Permite establecer una jerarquía, pero no se pueden crear objetos.
public abstract class Person {
protected String name;
public abstract String live();
public void doSomething(){
System.out.println("Hago cualquier cosa...");
}
}
UT 4: Java

1. Conceptos de herencia
Text
eugeniaperez.es

clase abstracta - Diagrama de clases

UT 4: Java

1. Conceptos de herencia
Text
eugeniaperez.es

polimorfismo
Cada objeto, dependiendo del tipo, realiza una tarea de manera distinta
public class Student extends Person{
@Override
public String live() {
return "Estoy estudiando";
}
}
public class Teacher extends Person{
@Override
public String live() {
return "Estoy corrigiendo... :(";
}
}
UT 4: Java

1. Conceptos de herencia
Text
eugeniaperez.es

interfaz
Es un contrato. Es como una clase únicamente con métodos abstractos (sin cuerpo).
UT4. Herencia II
By eugenia_perez
UT4. Herencia II
- 1,217