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).

 

 

Made with Slides.com