如何从kotlin中的伴随对象调用父方法

我有一个超级class:

open class A { fun doStuff() { } } 

然后我有一个子类扩展:

 class B: A() { companion object { doStuff() //compile error } } 

我怎样才能从同伴对象调用我的doStuff()方法?

你不能。

伴随对象与Java中的static关键字大致等价。 类A (及其子类)的doStuff()函数只能从该类的实际对象(如A().doStuff()B().doStuff() )调用B().doStuff()

当试图从B的伴侣对象中调用该函数时,由于您处于静态上下文中,因此不存在您可以调用该函数的A (或B )的此类对象。

如果你写了你发布的Java的等价物,你会收到错误

非静态方法不能从静态上下文中引用

这比你可能从Kotlin的编译器得到的更具描述性,在这里很好的解释。