| Creación de un Televisor estándar |
| Paso 18: Operativa |
La palabra reservada final aplicada a una Clase
Debido a que el modelo de televisor virtual con rádio incorporada lo diferencia de los demás televisores que existen en el mercado, no nos interesa que otros fabricantes puedan crear sus propios modelos con esta funcionalidad simplemente heredando de nuestro televisor virtual
- si otros fabricantes quieren también implementar dicha funcionalidad tendrán que dedicarle un tiempo considerable a I+D+I y no podrán sacar sus nuevos modelos con esta funcionalidad al menos hasta la próxima temporada
- así pues esta temporada somos los únicos que tenemos esta funcionalidad en el mercado y hemos basado nuestra campaña publicitaria en este factor diferenciador con el resto de nuestros competidores
Este es el Diagrama de clases que traspasa este pensamiento al mundo de los Objetos

- <<final>>
TeleRadioVirtual
- en UML se sabe que una Clase es final porque añadimos el estereotipo <<final>> al nombre de la Clase
- una Clase final no puede ser heredada
Para dem ostrar que no podemos heredar de una Clase final, vamos a hacer que la Clase TeleRadioVirtual sea final añadiendo la palabra reservada final a la signatura de la Clase
package paqtvestandar;
public final class TeleRadioVirtual extends TelevisorVirtual implements IRadio {
private int banda = FM;
private double emisora = 95.6;
public void setBanda(int banda) {
if ((banda == AM) || (banda == FM)){
this.banda = banda;
}
else {
this.banda = FM;
}
}
public int getBanda() {
return banda;
}
public void setEmisora(double emisora) {
this.emisora = emisora;
}
public double getEmisora(){
return emisora;
}
public void siguienteEmisora() {
System.out.println("TeleRadioVirtual - siguienteEmisora(): pasamos a " +
"la siguiente emisora");
}
public void emisoraAnterior() {
System.out.println("TeleRadioVirtual - emisoraAnterior(): pasamos a " +
"la emisora anterior");
}
public void ajustarAntena() {
// esta radio tiene una antena interna que no se puede ajustar
}
} |
Compilamos la Clase TeleRadioVirtual.
Y ahora vamos a crear una nueva Clase que la vamos a llamar TeleRadioVirtual2 que pretenderá heredar de TeleRadioVirtual, pero una vez más el inexorable compilador volverá a quejarse.
package paqtvfabricante;
import paqtvestandar.TeleRadioVirtual;
public class TeleRadioVirtual2 extends TeleRadioVirtual{
} |
- public class TeleRadioVirtual2 extends TeleRadioVirtual{
- como podemos observar no podemos heredadar de la Clase TeleRadioVirtual porque ésta es final