sealed class A
data class B(val b: String) : A()
data class C(val c: Int) : A()
object D : A()
open class E(val e: String) : A()
密封类是可以被继承的,但是注意,所有的密封类的子类必须要和密封类在同一个kotlin文件中,如果不在同一个文件中会报错。有趣的是,密封类的子类也可以被继承,就不限制于同一个kotlin文件了。不信请看:
class F : E("hello")