【发布时间】:2016-09-03 04:17:00
【问题描述】:
例如,我想在扩展 Parent 的类型 Child 上拥有一个函数 example(),以便我可以在两者上使用该函数。
Child.example()
Parent.example()
第一个“明显”的方法是通过Parent 的伴随对象,但这不允许example() 用于Child。
我尝试的第二种方法是在Parent.Companion 上定义一个扩展函数,这很不方便,因为你不得不定义一个伴生对象。它也不允许example() 用于Child。
有人知道我该怎么做吗?
【问题讨论】:
-
让静态函数可继承有什么意义???
-
@DanielTran 好吧,它不一定是“静态的”,因为它是 Kotlin。目的是为构造创建一个“替代运算符”,例如
Child[1, 2, 3]而不是Child(1, 2, 3) -
@DanielTran 例如为子类强制执行工厂方法怎么样?