Два левых отступа никогда не выполняются, потому что Color.Dark
и Color.Light
не наследуют Color
, а не потому, что они абстрактны. Это означает, что 2 из 6 is
веток бесполезны, их можно смело удалять. Но остальные 4 ветви (is Color.Dark.DarkRed
, et c.) go через все Color
подклассы, а Color
является запечатанным классом, поэтому when
может использоваться без else
ветви.