Kotlin 学習 - インターフェイス + 可視修飾子

インターフェースの定義

kotlin と Java のインターフェイス定義は似ています。

interface Study {
    
    
    fun doHomework()
    fun readBooks()
}

インターフェースの実装

Student で Study インターフェイスを実装するには、Study で宣言されている未実装の関数をすべて実装する必要があります。

class Student(name: String,  age: Int) : Person(name, age), Study{
    
    
    override fun doHomework() {
    
    
        println("$name is doing homework")
    }
    override fun readBooks() {
    
    
        println("$name is reading homework")
    }
}

インターフェイスのポリモーフィズムには次のものが使用されます。

fun main() {
    
    
    val student = Student("lucy", 19)
    //student.doHomework()
    study(student)
}

fun study(study: Study) {
    
    
    study.doHomework()
}

//结果:lucy is doing homework

インターフェース関数の実装

Kotlin では、インターフェイスで定義された関数のデフォルト実装が可能です。

interface Study {
    
    
    fun doHomework(){
    
    
        println("do homework default implementation")
    }
    fun readBooks()
}

doHome にはデフォルトの実装があるため、インターフェイス実装クラスでそれを実装する必要はなくなります。

class Student(name: String,  age: Int) : Person(name, age), Study{
    
    
    override fun readBooks() {
    
    
        println("$name is reading homework")
    }
}

次のプログラムを実行します。

fun main() {
    
    
    val student = Student("lucy", 19)
    student.doHomework()
}

//结果:do homework default implementation

可視修飾子

以下は、Java と Kotlin で表示される修飾子の範囲と比較です。

修飾子 ジャワ コトリン
公共 すべてのクラスが表示されます すべてのクラスが表示されます (デフォルト)
プライベート 現在のクラスが表示されます 現在のクラスが表示されます
保護された 現在のクラス、サブクラス、および同じパッケージ パスにあるクラスが表示されます。 現在のクラスとサブクラスが表示されます
デフォルト 同じパッケージ パスにあるクラスが表示されます (デフォルト) なし
内部 なし 同じモジュール内のクラスが表示されます

おすすめ

転載: blog.csdn.net/kongqwesd12/article/details/131224373