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.