Kotlin强制覆盖函数
问题描述:
我正在创建一个基类。
我有开始()与一些代码。Kotlin强制覆盖函数
而一个酒吧 ()需要通过继承 富
start()方法调用巴()
我的例子(foo.kt)一类被overidden
open class Foo {
fun start() {
bar()
//...
}
fun bar() {
TODO("implement me in deriving class")
}
}
我不喜欢巴()抛出异常 我不喜欢离开巴()与坯体要么
有什么我忘了,是在科特林一个更好的选择?
答
你可以让你的方法(因此,您的类)abstract
:
abstract class Foo {
fun start() {
bar()
//...
}
abstract bar()
}
这将迫使来自Foo
继承的任何非抽象类来实现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
我能做到这一点在Java中,而不是在科特林吧? start()包含一些代码 – Simulan88
您可以在两种语言中都使用它,抽象类以相同的方式工作。 – zsmb13
摘要是正确的,我在我的真实代码中仍然存在一些问题,但这是另一个问题。 – Simulan88