Sure. This is easier than it sounds.
What is a Marker Interface?
A marker interface is an interface that has no methods and no fields.
Example:
public interface Serializable {
}A class can implement it:
class Employee implements Serializable {
int id;
String name;
}Here, Serializable doesn't give Employee any method.
So why use it?
It acts like a tag/label that tells Java: "Treat objects of this class specially."
Simple real-world example π·️
Imagine you have employees:
Employee
├── Manager
├── Developer
└── InternNow imagine you put a tag on some employees:
[CAN_WORK_FROM_HOME]The tag itself doesn't do anything.
But another system can check:
Does employee have CAN_WORK_FROM_HOME tag?
│
┌───┴───┐
YES NO
↓ ↓
Allow Don't allowA marker interface works similarly.
Example: Serializable
Java has:
public interface Serializable {
}Suppose:
class Employee implements Serializable {
int id;
String name;
}The interface has no methods.
But when Java sees:
Employee emp = new Employee();and you try to serialize it, Java checks:
Is Employee Serializable?
│
┌───┴───┐
YES NO
↓ ↓
serialize errorIf the class doesn't implement Serializable, serialization can fail with NotSerializableException.
So:
class Employee implements Serializablemeans:
"This class is allowed to participate in Java serialization."
Another example: Cloneable
Java has:
public interface Cloneable {
}If:
class Employee implements Cloneable {
}it tells Java that objects of this class are permitted to be cloned through Object.clone().
Again:
Cloneable
↓
No methods
↓
Just a TAG
↓
"This class supports cloning"Why not use a normal method?
Because sometimes we don't need to provide behavior.
We only need to identify a category.
For example:
interface Serializable {
}We don't need:
serialize();
deserialize();inside the interface to make the tag useful.
The Java runtime/library can simply check:
if (obj instanceof Serializable) {
// treat specially
}How does Java check it?
For example:
if (employee instanceof Serializable) {
System.out.println("Employee can be serialized");
}Output:
Employee can be serializedSo the interface is basically being used as a classification/tag.
π§ Easy way to remember
Normal Interface
↓
Defines BEHAVIOR
↓
Methods
↓
"WHAT CAN YOU DO?"
Marker Interface
↓
Defines CATEGORY
↓
No methods
↓
"WHAT TYPE/CATEGORY ARE YOU?"Examples
| Marker interface | Purpose |
|---|---|
Serializable | Object can be serialized |
Cloneable | Object supports cloning |
EventListener | Identifies event-listener types |
π― Interview answer
A marker interface is an empty interface used to mark or tag a class so that the JVM, compiler, or Java libraries can treat objects of that class specially. Examples include
SerializableandCloneable. It doesn't define behavior through methods; instead, it provides metadata or classification.
Shortcut:
π Marker interface = Empty interface + Tag + Special treatment.
No comments:
Post a Comment