sealed classes and interfaces in java 17