eugeniaperez.es
1. Conceptos de herencia
Text
eugeniaperez.es
¿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");
}
}
1. Conceptos de herencia
Text
eugeniaperez.es
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!");
}
}
1. Conceptos de herencia
Text
eugeniaperez.es
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);
}
}
1. Conceptos de herencia
Text
eugeniaperez.es
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...");
}
}
1. Conceptos de herencia
Text
eugeniaperez.es
1. Conceptos de herencia
Text
eugeniaperez.es
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... :(";
}
}
1. Conceptos de herencia
Text
eugeniaperez.es
Es un contrato. Es como una clase únicamente con métodos abstractos (sin cuerpo).