Kotlinのdata class
でinterface
に準拠する際の書き方をメモ📱
結論
data class
のイニシャライザに、Sport
のインターフェースを含める場合には、下記のようにoverride
でプロパティを宣言する必要があるみたいです✍️
interface Sport { var name: String } data class Soccer( var leagueName: String, override var name: String ) : Sport
これだとインターフェースのname
プロパティ扱いにはならないのでダメです🙅🏻
data class Soccer( var leagueName: String, var name: String ) : Sport
これだとイニシャライザにプロパティを含められません🙅🏻
data class Soccer( var leagueName: String ) : Sport { override var name: String get() = TODO("Not yet implemented") set(value) {} }
てな感じで本日も以上になります🍺