class Test { void test(Sealed1 s1, Sealed2 s2) { switch (s1) { case A1 a -> System.out.println(); } switch (s2) { case A2 a -> System.out.println(); } } } sealed abstract class Sealed1 permits A1, B1, C1 { } final class A1 extends Sealed1 { } final class C1 extends Sealed1 { } sealed abstract class Sealed2 permits A2, A2 { } final class A2 extends Sealed2 { }