Saltar al contenido

¿Por qué las variables de interfaz static y final por defecto?

Encontramos la solución a esta preocupación, o por lo menos eso esperamos. Si tienes inquietudes puedes escribirlo en el apartado de comentarios, que para nosotros será un placer responderte

Solución:

De las preguntas frecuentes sobre el diseño de la interfaz Java de Philip Shaw:

Las variables de interfaz son static porque las interfaces de Java no se pueden instanciar por derecho propio; el valor de la variable debe ser asignado en un static contexto en el que no existe ninguna instancia. El modificador final asegura que el valor asignado a la variable de interfaz sea un true constante que no puede ser reasignada por código de programa.

fuente

Dado que la interfaz no tiene un objeto directo, la única forma de acceder a ellos es mediante el uso de una clase/interfaz y, por lo tanto, si existe una variable de interfaz, debería ser static de lo contrario, no será accesible en absoluto al mundo exterior. Ahora ya que es staticsolo puede contener un valor y cualquier clase que lo implemente puede cambiarlo y, por lo tanto, todo será un desastre.

Por lo tanto, si hay una variable de interfaz, será implícitamente staticdefinitivo y obviamente publico!!!

público: para la accesibilidad en todas las clases, al igual que los métodos presentes en la interfaz

static: como la interfaz no puede tener un objeto, interfaceName.variableName se puede usar para hacer referencia a él o directamente el variableName en la clase que lo implementa.

final: para hacerlas constantes. Si 2 clases implementan la misma interfaz y les da a ambas el derecho de cambiar el valor, se producirá un conflicto en el valor actual de la var, por lo que solo se permite una inicialización única.

Además, todos estos modificadores están implícitos para una interfaz, realmente no necesita especificar ninguno de ellos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *