value class One { private int value; synchronized void x() {} } value class Two extends One {} value class Three extends java.util.ArrayList {} abstract value class Four {} value class Five extends Four {} class Six extends Four {} // it's valid to extend a value class with an identity class value interface Seven {} value enum Eight {} value record Nine(int no) {} sealed value class Ten {} non-sealed value class Eleven {} abstract sealed value class Twelve {} value class Thirteen extends Twelve { void x() { synchronized (this) { System.out.println(); } } }