我是Kotlin的新手(有Java经验)。在Java中,如果我们编写至少一个构造函数,那么编译将不会构建任何空的构造函数。仅当我们没有编写构造函数时,才会构建空构造函数。我知道在Kotlin中,编译器的工作方式与Java中相同。我在Kotlin中编写了一个带有一个构造函数的超类(名称为Animal)。另外,我为Animal编写了一个子类,该子类调用了Animal的空构造函数。我不明白为什么动物类没有要调用的空构造函数,所以编译器为什么没有通知我这是一个编译错误。我的代码:
open class Animal (val str:String = "sav")
{
open var fff:String = ""
open var image = ""
open val food =""
open val habitat =""
var hunger = 10
open fun makeNoise()
{
println("The animal is making noise")
}
}
class Hippo ( var strrr:Int = 7) : Animal()
{
override var image = "hippo.jpg"
override var food = "grass"
override val habitat = "water"
override fun makeNoise()
{
println("Grunt! Grunt!")
}
}
河马班(var strrr:Int = 7):Animal()>不是问题吗?
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句