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"); } }