rara vez he querido tener una constante real en una interfaz - por lo general tienen más sentido en las clases. La práctica de usar una interfaz Java para solo contiene constantes (para reducir el tipeo en las clases que las usan) es desagradable; Solo ponía constantes en las interfaces donde estaban relacionadas con la funcionalidad dentro de la interfaz.
Sin embargo, en ocasiones he pensado que sería bueno poder definir una enumeración dentro de una interfaz, si ese es el único contexto en el que se espera que la enumeración sea utilizada. Curiosamente, VB lo permite aunque C# no.
Efectivamente, ambos serían una forma de convertir la interfaz en un "mini-namespace" por derecho propio. Sin embargo, no puedo decir que me lo he perdido muy a menudo al escribir C#. Como le gusta decir al equipo C#, las características no son eliminadas - son añadidas, y el costo de agregar una función es muy alto. Eso significa que la función realmente necesita aumentar su peso; tiene que haber un beneficio significativo antes de que se agregue la función. Yo personalmente no pondría esto muy alto en la lista.
pensamiento relacionadas: que sería bueno para poder definir un anidado clase dentro de la interfaz, por lo general una implementación de la interfaz - ya sea para expresar sus contratos o para actuar como una aplicación "default" para situaciones donde hay tal cosa.
No puede declarar campos "normales" en las interfaces Java, pero puede declarar constantes. De eso es de lo que habla el OP. –
Y sé lo que es una interfaz sin necesidad de explicación sobre eso. He mencionado que es constante, estoy tratando de agregar, – Ravisha
@Jon: Ya veo. Pensé que la pregunta es más general. Eso sería extraño, de todos modos, pero no tengo una razón teórica para no hacer esto (o tal vez porque tengo un fondo C#, me parece extraño). –