package com.trifulcas.herencia;
public final class Aviso {
private String mensaje;
public Aviso(String mensaje) {
super();
this.mensaje = mensaje;
}
public void alarma() {
System.out.println(mensaje);
}
}
Al ser final, no se puede derivar clases de aquí. Lo siguiente no está permitido:
package com.trifulcas.herencia;
public class AvisoSubClase extends Aviso {
public AvisoSubClase(String mensaje) {
super(mensaje);
}
@Override
public void alarma() {
System.out.println("Mensaje desde una subclase");
}
}
Lo podemos hacer a nivel de método:
package com.trifulcas.herencia;
public class Aviso {
private String mensaje;
public Aviso(String mensaje) {
super();
this.mensaje = mensaje;
}
public final void alarma() {
System.out.println(mensaje);
}
}
Ahora solo se queja en el método, no en la clase:
package com.trifulcas.herencia;
public class AvisoSubClase extends Aviso {
public AvisoSubClase(String mensaje) {
super(mensaje);
}
@Override
public void alarma() {
System.out.println("Mensaje desde una subclase");
}
}