![]() |
1
4
对我来说有两个原因: 首先,Kotlin从函数式编程世界中汲取了许多思想,并尽可能频繁地使用不变性来避免 known problems with mutation . 所以在默认情况下声明每个类“final”是(至少对我来说)类似的。 在运行时无法更改或更改类(使用类似于反射的东西),这将使Kotlin编译器的安全检查无效。 所以如果你想“变异”一个类的默认实现,你必须显式地将它标记为open。 我想到的第二个想法是遗产经常被滥用。 介绍了几种常见的陷阱 here 这是原则” Favor composition over inheritance “作为更好设计的指导方针。因此,默认情况下,将每个类声明为final会迫使开发人员至少停一下,考虑其他解决问题的方法,而不是出于错误的原因使用继承。 但是,由于kotlin开发人员没有正式声明,我只能给出一个自以为是的答案。 |
![]() |
A. Cedano · 如何在UIState中包含错误案例? 4 月前 |
![]() |
Murilo · Jetpack编写导航栏项目图标 4 月前 |
![]() |
zplot · 使用具有抽象嵌套类的泛型时类型不匹配 4 月前 |