sealed abstract class Shape permits Circle, Rectangle { … }
final class Circle extends Shape { … }
final class Rectangle extends Shape { … }
static String describe(Shape s) {
return switch (s) {
case Circle c ->
"Circle with radius " + c.getRadius();
case Rectangle r ->
"Rectangle " + r.getHeight() + " x " + r.getWidth();
};
}
Το παραπάνω πρόγραμμα είναι σχεδιασμένο ώστε εγγυημένα
να καλύπτει όλες τις υποκλάσεις της Shape.