【发布时间】:2016-01-24 10:01:24
【问题描述】:
我经常发现自己的超类有很多可选参数,而这些相同的参数在其子类中也需要是可选参数。
例如超类:
abstract class Plugin(val name: String, val version: String = "1.0",
val author: String = "", val description: String = "")
扩展这门课很痛苦。这是一个示例子类:
abstract class CyclePlugin(name: String, version: String = "1.0", author: String = "",
description: String = "", val duration: Int, val durationUnit: TimeUnit
= MILLISECONDS) : Plugin(name, version, author, description)
注意:我会用我的解决方案来回答这个问题。我正在寻找一个更好的解决方案。
【问题讨论】:
-
避免继承的另一个原因 :) 如果这些参数是可选的,为什么还要在构造函数中使用它们呢?相反,您可以在基类中声明常规属性
var optionalProperty:String? = "DefaultValue"。
标签: constructor duplicates kotlin code-duplication