package ch.claude_martin; import java.lang.reflect.Modifier; public class SomeClass { static abstract class MyAbstractClass { @Override public String toString() { return "Hello!"; } } static interface MyInterface { default int foo() { return 42; } } public static void main(String[] args) throws Throwable { MyAbstractClass instance = new MyAbstractClass() { }; System.out.println(instance); int modifiers = MyInterface.class.getMethod("foo").getModifiers(); boolean isAbstract = Modifier.isAbstract(modifiers); if (isAbstract) System.out.println("foo is abstract"); else System.out.println("foo is not abstract"); } }