15

随着 Kotlin1.5的推出,sealed interface. 即使我知道类和接口之间的区别,我也不清楚使用sealed interfaceover的最佳实践和好处是什么sealed class

interface即使是一个简单的案例,我现在应该一直使用吗?还是会因情况而异?

谢谢

Obs:没有找到类似的问题,只有关于sealed classes

4

1 回答 1

13

选择使用密封类而不是接口的一个主要原因是,如果存在您不希望的公共属性/功能public。接口的所有成员始终是公共的。

可以使用扩展函数/属性在接口上解决成员必须存在的限制public,但前提是它不涉及非公开存储状态。

否则,密封接口更灵活,因为它们允许子类型是其他东西的子类、枚举类或多个密封接口/类层次结构的子类型。

于 2021-09-08T13:08:14.123 回答