Marker/Tagging Interfaces:
An interface with no methods is known as a marker or tagged interface.
Why marker interface used:
It provides some useful information to the JVM/compiler so that the JVM/compiler performs some special operations on it. It is used for better readability of code. Example: Serializable, Cloneable, etc.
Syntax
| public interface Interface_Name {
} |
Let us understand it with an example. We have no. of colleges from which some colleges are of A grade. We have created an AGradeCollegeMarker interface which contains no method and only informs the JVM that it is an A-grade college. Every A-grade college has to implement AGradeCollegeMarker. In the TestCollege class, the tester method will print “A grade college.” if the object belongs to A grade college.
Example:
AGradeCollegeMarker.java
package com.w3schools.business;
public interface AGradeCollegeMarker {
}
College1.java
package com.w3schools.business;
public class College1 implements AGradeCollegeMarker{
//Do something
}
College2.java
package com.w3schools.business;
public class College2 {
//Do something
}
TestCollege.java
package com.w3schools.business;
public class TestCollege {
static void tester(Object obj){
if (obj instanceof AGradeCollegeMarker) {
System.out.println("A grade college.");
}
}
public static void main(String args[]){
College1 obj1 = new College1();
College2 obj2 = new College2();
//test college objects
tester(obj1);
tester(obj2);
}
}
Output
A grade college.