【发布时间】:2018-05-11 11:10:23
【问题描述】:
我正在学习 Kotlin,但我有点坚持使用构造函数。我编写了一个程序来帮助我理解这个概念。程序如下:
open class Animal(){
var name :String = "noname";
constructor(name:String):this(){
this.name = name
}
open fun eat(){
println("$name the animal is eating")
}
}
class Dog: Animal{
constructor():super()
constructor(name : String):super(name)
override fun eat(){
println("$name the dog is eating")
}
}
fun main (args:Array<String>){
var a1 = Animal("foo")
var a2 = Animal()
var d1 = Dog("bar")
var d2 = Dog()
a1.eat()
a2.eat()
d1.eat()
d2.eat()
}
是否可以修改程序,使子类调用父类的主构造函数而不使用另一个辅助构造函数。
我在这里想要实现的是不强制用户在使用主构造函数和辅助构造函数创建对象时传递参数。
如果我的问题很愚蠢,请原谅我。我是新手。
【问题讨论】:
标签: kotlin primary-constructor