こんにちは😀
今回は、インターフェイスを使います。
インターフェイスとは、複数のクラスに共通の構造の名前を与える定義です。
javaでもおなじみの定義ですね。
インターフェイスを書いてみましょう。
クラス名の頭に「interface」を追加します。
その中身は、変数name、関数getDriveとgotoを指定しています。
このインターフェイスをもつクラスは、この変数と関数を使用することができます。
interface Drive {
val name:String
fun getDrive():String
fun goto():String
}
クラスを作成して、インターフェイスを実装しましょう。
クラス名と引数の後ろに「:Drive」と記述すれば、インターフェイスDriveを実装できます。
引数nameにはvalが付いていませんが、この変数を3行目でプロパティの値として受け取るので、引数にvalは不要です。
関数getDriveとgotoは、処理を実装しなくても問題ないですが、記述はしないとエラーになります。
class Using(name:String):Drive{
override val name = name
override fun getDrive(): String = “${name}を使います。”
override fun goto(): String = “${name}で大阪にいきます。”
}
上記のクラスは、以下のようにも書けます。
1行目の引数に「override val」を追加して、プロパティの記述が不要になりました。
class Using(override val name:String):Drive{
override fun getDrive(): String = “${name}を予約しました。”
override fun goto(): String = “今から${name}で鍾乳洞にいきます。”
}
main関数で、クラスを定義しましょう。
定義や関数の呼び出しは今まで通りです。
fun main(args: Array<String>) {
val car = Using(“レンタカー”)
println(car.getDrive())
println(car.goto())
}
実行します。
インターフェイスは複数のクラスに実装できる共通のルールのようなものなので、大人数で開発をするときは大いに役立ちます。
IT言語を理解する上でも便利な概念だと思います。
今回はここまで😀
では、また次回。
コメント