public class Main { class A { }; class B extends A { }; class C extends B { }; private void run() { B b = new C(); System.out.println(b instanceof A); System.out.println(A.class.isAssignableFrom(b.getClass())); System.out.println(B.class.isAssignableFrom(b.getClass())); System.out.println(C.class.isAssignableFrom(b.getClass())); } public static void main(String[] args) { new Main().run(); } }