abstract class A { public abstract int hashCode(); public abstract boolean equals(Object obj); public abstract void foo(); { new A() { @Override public int hashCode() { return super.hashCode(); } @Override public boolean equals(Object obj) { return super.equals(obj); } @Override public void foo() { super.foo(); } }; } }