@Parcelize注释与inheritance

我无法使用@parcelize注释创建通用结构。 我希望构造函数可以用作Jason,Room和Parcelable的构造函数。

让我们假设我们有课

@Parcelize class Food(var taste: String = "") 

现在我首先想到了两个解决方案

1.提示味道必须是var或val,有可用的Parceable构造函数

 @Parcelize class FastFood(var callory:String = "", taste: String): Food(taste) // error 

我认为,我必须明确地确定一下这个口味 – 那么多态的好处是什么呢?

 @Parcelize class FastFood(var callory: String = "", var taste: String): Food(taste) // error 

我怎样才能有效地inheritance与你的图书馆?

在Kotlin中,如果您在构造函数“val”或“var”中添加值,它将成为类属性。 要使用Parceable,你需要添加它,因为没有它Parcelable.Creator不能访问它。 然后,你需要添加“开放”修改器食品类和属性的“品味”,因为在Kotlin默认最终,所以你将能够超越品味价值。

 @Parcelize open class Food(open val taste: String) @Parcelize class FastFood(var callory:String = "", override val taste: String): Food(taste)