Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
3
respuestas

Atributos estáticos en una Interfaz

Sabemos que una interfaz no puede tener atributos ni métodos implementados, entonces en el ejemplo que está desarrollando en el curso, si yo quisiera saber la cantidad de veces que se inicia sesión debería poder tener un atributo estático que pertenezca a la interfaz Autenticable, mi pregunta es. ¿Es posible tener atributos o métodos estáticos en una interfaz?. Gracias por la respuesta.

3 respuestas
solución!

Hola Edward , espero que estés muy bien.

Usted puede sí tener metodos estaticos en su interface (https://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html).

Metodos en interfaz son implícitamente public y abstract . O sea por más que tu declare un metodo así , por ejemplo

public interface MiInterface {
    void teste();
}

Implícitamente lo que estás haciendo es:

public interface MiInterface {
    public abstract void teste();
}

O sea, lo problema no es la interface, el problema es el modificador abstracto que entra en conflicto con el modificador estático.

Espero haberte ayudado! Gracias por tu participación =)

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios

Hola Edward, que bueno verte aquí.

Una interfaz, como dije correctamente "no puede tener atributos ni métodos implementados".

¿Es posible tener atributos o métodos estáticos en una interfaz?

Para responder a tu pregunta, la dividiré en dos:

  1. Atributos: cuando tiene un atributo en una interfaz, siempre será public static final;
  2. Métodos: los métodos estáticos son métodos que no dependen de un objeto/variable de instancia. Al ser invocados, ejecutan una función sin depender del contenido de un objeto, pudiendo llamar directamente a cualquier método de la clase. A partir de la versión 8 de Java fue posible crear métodos estáticos en las interfaces. En versiones anteriores, esto no era realmente posible.

Espero haberte quedado claro, cualquier duda estaremos aquí para ayudarte =)

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios

Hola Maria Fernanda, muchas gracias por ese aporte.