Hace algunos años, en la era anterior a Java 5, Java no admitía atributos. Por lo tanto, para "etiquetar" una clase o una interfaz para que puedan verificarse en tiempo de ejecución, usaría interfaces de marcador, que básicamente es una interfaz vacía, pero aún puede verificar si se puede convertir una instancia a esta interfaz.
En .NET, las interfaces de marcadores no deben utilizarse excepto en casos de uso especial (como permitir el uso de métodos de extensión), porque los atributos proporcionan una mejor manera de marcar clases (y muchas más) con metainformación. Lo mismo aplica para Java 5 y versiones posteriores, donde las anotaciones se introdujeron y deberían usarse en su lugar.
¿Atributos? ¿Te refieres a anotaciones? – EJP
@EJP, en .net se llaman atributos. Pero los chicos de Java tuvieron que encontrar un nombre diferente para la misma cosa cuando finalmente los implementaron después de decirle a todos por mucho tiempo que esto era una tontería ... – Lucero
@EJP: Atributos en .Net: http://msdn.microsoft. com/es-us/library/aa288454 (VS.71) .aspx – Manish