Definición de Subclases y Herencia

Definir la clase D de modo que D sea una subclase de la clase B:

public class D extends B {
  ...
}


Ejemplo: se desea definir un Punto a color

public class PuntoAColor extends Punto {
  String color;
  public PuntoAColor(int x, int y, String color) {
    this.x= x;
    this.y= y;
    this.color= color;
  }
  public void cambiarColor(String color) {
    this.color= color;
  }
  public String toString() {
    return color+"("+x+","+y+")";
} }



Ejercicio: Uso de PuntoAColor.

R.-


Experimento: Cambie el tipo de las variables p y q a Punto conservando los new PuntoAColor(...). Recompile y ejecute.

Definición: Enlace Dinámico

El método que se invoca es el que se define para el tipo dinámico de la variable.

En el ejemplo se invoca toString definido para PuntoAColor a pesar de que la variable es de tipo Punto.


Llamar el método definido para la clase base:

public void moverA(int x, int y) {
  cambiarColor("negro");
  super.moverA(x,y);
}
Invocar el constructor de la clase base:

public PuntoAColor(int x, int y, String color) {
  super(x, y); // en vez de this.x= x; ...
  this.color= color;
}


Propuesto: Ordenamiento genérico de arreglos

Si Ud. dispone de tiempo, le resultará muy instructivo realizar el ejercicio Ordenamiento Genérico de Arreglos que aparece en los apéndices.