「KotlinBasics8」キーワード:コンストラクター(this / super)

コンストラクター:コンストラクター

これ、super
は単に継承について話します。thisとsuperの2つのキーワードはjavaに似ています。
これはそれ自体を呼び出すものであり、superは
親クラスを呼び出すメインアクティビティです。

class MainActivity : AppCompatActivity() {
    
    
    override fun onCreate(savedInstanceState: Bundle?) {
    
    
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        AAA("学生")
        var b = BBB("小王")
    }
}
open class AAA {
    
    
    constructor(name: String) {
    
    
//        Log.v("wz", "$name A")
        System.out.println("wz = $name A")
    }

    constructor(name: String, age: Int) {
    
    
//        Log.v("wz", "我是AAA的两个参数的构造方法")
        System.out.println("wz = 我是AAA的两个参数的构造方法")
    }

    init {
    
    
//        Log.v("wz", "222")
        System.out.println("wz = 222")
    }
}

class BBB : AAA {
    
    
    constructor(name: String) : this(name, 0) {
    
    
//        Log.v("wz", "我是BBB的一个参数的构造方法")
        System.out.println("wz = 我是BBB的一个参数的构造方法")
    }

    constructor(name: String, age: Int) : super(name, age) {
    
    
//        Log.v("wz", "我是BBB的两个参数的构造方法")
        System.out.println("wz = 我是BBB的两个参数的构造方法")
    }
}

//var b = BBB("小王")

クラスBBBはAAAを継承します。ここで、BBBにはそれぞれ1パラメーターコンストラクターと2パラメーターコンストラクターがあります。1パラメーターコンストラクターはthisキーワードを使用して、独自の2パラメーターコンストラクターを呼び出します。2パラメーターコンストラクターは、 superキーワードによって呼び出される2つのパラメーターを持つ親クラス。コンソールによって出力されるデータは次のとおりです。

System.out: wz = 222
System.out: wz = 学生 A
System.out: wz = 222
System.out: wz = 我是AAA的两个参数的构造方法
System.out: wz = 我是BBB的两个参数的构造方法
System.out: wz = 我是BBB的一个参数的构造方法

理解できない場合は、デバッグを使用して、段階的に理解することができます。

おすすめ

転載: blog.csdn.net/qq_35091074/article/details/123730863