科特林强制重写一个函数

我正在创建一个基类。
我有一些代码 开始()
还有一个bar()需要被inheritanceFoo的类所超越

start()调用bar()

我的例子(foo.kt):

open class Foo { fun start() { bar() //... } fun bar() { TODO("implement me in deriving class") } } 

我不喜欢bar()抛出exception,我不喜欢把bar()留给空白的body

有什么我忘了这是在Kotlin 更好的选择

2 Solutions collect form web for “科特林强制重写一个函数”

你可以使你的方法(以及你的课)变得abstract

 abstract class Foo { fun start() { bar() //... } abstract bar() } 

这将强制任何从Fooinheritance的非抽象类实现bar方法,并且阻止任何人直接创建基类Foo类的实例。

您可以更改在Android Studio / Intellij中生成的默认代码:

 File -> Settings Then look for Editor -> File and Code Templates Code -> New Kotlin Function Body 

TODO("not implemented")替换为// TODO: not implemented

  • 在lateinit声明后variables不更新,无法返回
  • Kotlin代表了一个未定义的价值
  • 未连接到Internet时发生致命exception
  • Kotlin - 在初始化时转换值
  • 注释必须调用超级的接口函数
  • “何时”语句与Java“切换”语句
  • 我必须分配什么编译时types才能获得java.util.Map的返回值
  • genericstypes参数不在范围内
  • 如何从Kotlin的资源中读取文本文件?
  • 参考Kotlin中特定实例的方法
  • Kotlin的crossinline和noinline有什么不同?
  • Kotlin language will be the best programming language for Android.