Search code examples
androidinheritancekotlininitsuperclass

Why init block not executing when a class inherited another open class Android Kotlin?


I have BaseClass like this :

open class BaseClass(private var context: Context) {
      init{
         println("BaseClass init called")
      }
}  

And ChildClass like this:

class ChildClass(private var context: Context) : BaseClass(context) { 
      init{
         println("ChildClass init called")
      }
} 

So call it like this:

context?.let { ChildClass(it) }

But not called any init functions.


Solution

  • println print the log in Console. To print log in logcat, you have to use Log. like:

    init{
        //println("BaseClass init called")
        Log.v("TAG", "BaseClass init called")
    }