Kotlin constructor with super class

2019-06-27 17:31发布

问题:

Any way I try, be it primary constructors or secondary, I can't figure out how to declare a new class with a super class and a constructor in kotlin.

class myPanel : JPanel {
    myPanel() : super() {

    }
}

This is how i would most like t do it but it gives an error expecting member declaration.

class myPanel() : JPanel() {
    {
        ...
    }
}

this is how I thought a primary constructor looked but it gives the same error. Searching the internet hasn't been helpful and all I could find was the second example.

So, what are all of the valid ways of creating a class with a super class and its one constructor?

回答1:

Kotlin's constructor is contained in an init block

class Test : SuperClass() {
    init {
      // Do constructor stuff here
    }
}

More information can be found in the Kotlin reference on classes: https://kotlinlang.org/docs/reference/classes.html#constructors



回答2:

In addition to above answer. If super class have any parameter pass it like this,

class Dog(name: String, color: String): Animal(name, color){
    init {
        // Do Constructor tasks here...
    }
}


标签: kotlin