en cuanto a mi observación cuando la clase en sí tiene un modificador de acceso predeterminado, de qué sirve tener métodos públicos. el compilador de Java podría haber dejado de usar los métodos públicos en la clase predeterminada. ¿Hay alguna razón para eso?¿De qué sirve tener métodos públicos cuando la clase tiene un modificador de acceso predeterminado?
¿De qué sirve tener métodos públicos cuando la clase tiene un modificador de acceso predeterminado?
Respuesta
Una razón: si su clase implementa alguna interfaz (o amplía alguna clase abstracta con métodos públicos abstractos), entonces no puede reducir la visibilidad de los métodos implementados.
La clase no pública podría implementar una interfaz pública. Esto significaría que las clases fuera del paquete no podrían crear una instancia de esta clase o crear referencias de ese tipo, pero aún podrían invocar métodos si pasaron una instancia.
Por ejemplo, una clase de fábrica pública podría crear una instancia de una clase no pública en su paquete y devolverla.
Incluso una interfaz no pública tiene métodos públicos. –
Es una hermosa combinación de Seguridad y Usabilidad en uno.
Marcaría una clase con acceso predeterminado si quiero que tenga, bueno, acceso al paquete (para que ningún otro paquete pueda usarlo o mejor cambie el código) y marque un método público, estoy haciendo el método accesible para todas las otras clases, independientemente del paquete al que pertenecen.
¿Cómo funciona eso? Una clase que es lo suficientemente segura para realizar toda la implementación del código complejo y lo suficientemente utilizable para dar la salida al usuario que desea usarla.
¿Cómo puede alguien usar eso? Bueno, escribes código para ayudarlos a usarlo al crear una clase pública que amplía esta clase predeterminada. Usted crea una instancia de esta Subclase pública en cualquier paquete (después de importar of-course) y tiene todos los métodos marcados como públicos.
¡Tienes una clase que hace tu magia que todos pueden usar sin darle a nadie más una idea de cómo lo hiciste!
- 1. ¿Cuál es el modificador de acceso predeterminado de una clase?
- 2. Modificador de acceso predeterminado en C#
- 3. Métodos estáticos públicos vs métodos públicos
- 4. ¿Para qué sirve el modificador 'asmlinkage'?
- 5. C# Modificador de acceso predeterminado del método Main()
- 6. Cómo cambiar el modificador de acceso predeterminado en Resharper (R #) a interno
- 7. modificador de acceso predeterminado para enum en C#
- 8. ¿Para qué sirve la clase A [_]?
- 9. ¿Por qué obtengo los métodos de la clase base por reflexión cuando la subclase los anula?
- 10. ¿Qué hace el modificador "privado"?
- 11. ¿Deben declararse los métodos en una interfaz Java con o sin un modificador de acceso público?
- 12. Cómo ocultar los métodos públicos de IntelliSense
- 13. Java: nuevoInstancia de clase que no tiene un constructor predeterminado
- 14. método sin modificador de acceso
- 15. Modificador de acceso de subclases C++?
- 16. Encontrar qué métodos tiene un objeto Python
- 17. ¿Cuándo debería usar métodos públicos/privados/estáticos?
- 18. Por qué C# permite métodos/miembros sean públicas cuando la clase es interno
- 19. C# @ modificador para los parámetros de métodos
- 20. Excluir cuando el padre tiene la clase
- 21. Acceso a métodos y propiedades públicos dentro de un Delphi BPL
- 22. Accediendo a métodos "públicos" desde métodos "privados" en la clase javascript
- 23. ¿Variables/métodos privados en la clase anónima?
- 24. ¿De qué sirve escribir una clase dentro de una interfaz?
- 25. ¿De qué sirve tener el destructor como privado?
- 26. Diferencia entre especificador de acceso y modificador de acceso
- 27. Visual C# 2010 Express: ¿Especifica el modificador de acceso predeterminado para las nuevas clases?
- 28. métodos públicos en clases privadas de paquete
- 29. Acceso a un constructor privado desde fuera de la clase en C#
- 30. ¿Por qué los idiomas de oop no tienen un modificador de acceso de "solo lectura"?
También las subclases públicas heredarán los métodos como públicos. –