viernes, 5 de marzo de 2010

Métodos heredados, this y super en Java (05.01.04)

La superclase define los métodos para todas las subclases.
La subclase puede especificar métodos propios.
Item0.java
public class Item0 {
protected float precio = 0;
Item0 (float precio) {
this.precio = precio;
}
public float getPrecio() {
return precio;
}
}
Pelicula0.java
public class Pelicula0 extends Item0
{
private String titulo = "";
Pelicula0 (float precio, String titulo) {
super(precio);
this.titulo = titulo;
}
public String getTitulo()
{
return titulo;
}
}

TestSuper.java
public class TestSuper {
public static void main (String[] args) {
Item0 item = new Item0(1.1f);
System.out.println( item.getPrecio() );
Pelicula0 pelicula = new Pelicula0(2.2f,"Zelig");
System.out.println( pelicula.getPrecio() );
System.out.println( pelicula.getTitulo() );
}
}

Que diferencia existe entre this y super?
Se puede reemplazar super(precio); por this.precio = precio; ?
Que métodos puede invocar una subclase?
La subclase hereda todos los métodos del padre.
La subclase puede re-escribir un método del padre.

Item1.java
public class Item1 {
public float calcularImporte(int cliente) {
return 50;
}
}
Pelicula1.java
public class Pelicula1 extends Item1 {
public float calcularImporte(int cliente) {
if (cliente < 500)
return 10;
else
return 30;
}
}

TestSobrescribir.java
public class TestSobrescribir {
public static void main (String[] args) {
Item1 item1 = new Item1();
System.out.println( item1.calcularImporte(599) )
Pelicula1 pelicula1 = new Pelicula1();
System.out.println( pelicula1.calcularImporte(399) );
System.out.println( pelicula1.calcularImporte(599) );
}
}
Cual es la diferencia entre sobre-carga de métodos y sobre-escritura de métodos?
Compartir:

0 comentarios:

Publicar un comentario