tutorial sobre interfaz interfaces graficos grafica español ejercicios ejemplos componentes clases clase abstractas java interface public-method

sobre - java swing tutorial pdf español



¿Por qué deberíamos declarar los métodos de interfaz como públicos? (5)

  1. Si marcamos un método de interfaz como privado, la clase implementadora no verá el método y no podrá anularlo.

  2. Si marcamos un método de interfaz como protegido, la clase implementadora no verá el método a menos que esté en el mismo paquete que la interfaz.

  3. Si marcamos un método de interfaz sin ningún modificador de acceso el
    clase de implementación no verá el método a menos que esté en el mismo
    paquete como la interfaz

Esta pregunta ya tiene una respuesta aquí:

Cuando implemento un método de interface , me veo obligado a hacerlo un método public .

Es posible que tengamos casos en los que deseamos utilizar el default (como en el caso de acceso dentro del mismo paquete) o protected .

¿Alguien puede explicar la razón detrás de esta limitación?


Las interfaces están destinadas a definir la API pública de un tipo, y solo eso, no su implementación. Por lo tanto, cualquier método (o miembro estático) que defina en una interfaz es, por definición, public .

Dado que una interfaz no puede contener ninguna implementación concreta, no hay forma de llamar a ningún método miembro desde dentro. Y declarar tales métodos pero dejar las llamadas a ellos a subclases o clientes totalmente no relacionados significaría que su definición de tipo es incompleta y quebradiza. Es por eso que si necesita definir miembros protegidos o de acceso al paquete, puede hacerlo en una clase abstracta (que también puede contener implementación).


Tal vez this proporcionará algunas respuestas.

Que yo sepa, usa interfaces para permitir que personas ajenas a su código interactúen con su código. Para hacer esto, necesitas definir tus métodos public .

Si desea forzar a alguien a anular un conjunto dado de métodos privados, puede declarar una clase abstracta con una serie de métodos abstractos protegidos.


Una interfaz es un contrato que la clase que implementa tendrá los métodos en la interfaz. La interfaz se usa para mostrar al resto del programa que esta clase tiene los métodos y que podrían llamarse


EDIT: Esta respuesta es para implementaciones de interfaz C #. En este caso de Java, el escenario es similar, simplemente porque el analizador sintáctico desea una palabra clave pública mencionada en la interfaz, que se realiza implícitamente en C #

Los métodos de la interfaz son implícitamente públicos en C # porque una interfaz es un contrato destinado a ser utilizado por otras clases. Además, debe declarar que estos métodos son públicos y no estáticos cuando implementa la interfaz .

interface IStorable { void Read( ); void Write(object obj); }

Tenga en cuenta que las declaraciones de métodos IStorable para Read( ) y Write( ) no incluyen modificadores de acceso ( public , protected ..). De hecho, proporcionar un modificador de acceso genera un error de compilación.

class Document : IStorable { public void Read( ) { // } public void Write(object obj) { // } }

Solo piense en las interfaces como Contratos que se implementarán como public