// Sealed class must have subclasses // child classes in turn can be either final, non-sealed, or sealed sealed class Fruits permits Apple, Orange, Guava { } // 1) cannot be extended further final class Apple extends Fruits { } // 2) can be extended by the Unknown subclasses non-sealed class Orange extends Fruits { } // 3 can only be extended by the permitted sub-classes sealed class Guava extends Fruits permits RedGuava { } final class RedGuava extends Guava { }