A marker interface is a design pattern consisting in an interface with no methods declared. All the classes implementing this interface don’t have to implement a method for the interface(since it doesn’t have an interface), but we can say that the classes implementing the interfaces are marked. For example in Java we have the Serializable interface. It is a Marker Interface, when we create a class in order to mark it as a serializable class, it will implement the serializable, so everyone using it will know that the class is serializable.
However there are 2 major drawbacks:
Starting with Java 1.5 annotations and attributes in .NET can be used instead of Marker Design Pattern. Annotations can be accessed using reflection and can be used to mark not only Classes but also Methods and Attributes.