1.5 was introduce the
sealed interface. Even that I know the difference between classes and interfaces, I'm not clear what are the best practices and beneficies of using
sealed interface over
Should I always use
interface now even when is a simple case? Or will be a case by case?
Obs: Didn't found similar questions, only about
A major reason to choose to use a sealed class instead of interface would be if there is common property/function that you don't want to be
public. All members of an interface are always public.
The restriction that members must be
public can be worked around on an interface using extension functions/properties, but only if it doesn't involve storing state non-publicly.
Otherwise, sealed interfaces are more flexible because they allow a subtype to be a subclass of something else, an enum class, or a subtype of multiple sealed interface/class hierarchies.