Marker interfaces are that which don't declare any method or atrributes. It is used to mark classes conceptually. By using marker interfaces, a developer can tag certain code without complicating its inheritance structure. For example, Serializable is a marker interface that you see all over the place. This interface marks a class as having the ability to be flattened and serialized to a stream and then restored from that stream. This allow Java to store objects in files and the virtual machine know that this class can be introspected and then written out. Classes that are not serializable do not have this ability.