Kotlin-interface

提供:Dev Guides
移動先:案内検索

Kotlin-インターフェース

この章では、Kotlinのインターフェースについて学びます。 Kotlinでは、インターフェイスはJava 8とまったく同じように機能します。つまり、メソッド実装と抽象メソッド宣言を含めることができます。 定義された機能を使用するために、クラスによってインターフェイスを実装できます。 第6章のセクション「匿名内部クラス」で、インターフェイスを使用した例を既に紹介しました。 この章では、それについてさらに学びます。 キーワード「インターフェイス」は、次のコードに示すように、Kotlinでインターフェイスを定義するために使用されます。

interface ExampleInterface {
   var myVar: String    //abstract property
   fun absMethod()      //abstract method
   fun sayHello() = "Hello there"//method with default implementation
}

上記の例では、「ExampleInterface」という名前のインターフェイスを1つ作成し、その中にいくつかの抽象プロパティとメソッドがすべて一緒にあります。 実装されたメソッドである「sayHello()」という名前の関数を見てください。

次の例では、上記のインターフェイスをクラスに実装します。

interface ExampleInterface  {
   var myVar: Int           //abstract property
   fun absMethod():String   //abstract method

   fun hello() {
      println("Hello there, Welcome to finddevguides.Com!")
   }
}
class InterfaceImp : ExampleInterface {
   override var myVar: Int = 25
   override fun absMethod() = "Happy Learning "
}
fun main(args: Array<String>) {
   val obj = InterfaceImp()
   println("My Variable Value is = ${obj.myVar}")
   print("Calling hello(): ")
   obj.hello()

   print("Message from the Website-- ")
   println(obj.absMethod())
}

上記のコードは、ブラウザに次の出力を生成します。

Calling hello(): Hello there, Welcome to finddevguides.Com!
Message from the Website-- Happy Learning

前述のように、Kotlinは複数の継承をサポートしていませんが、一度に3つ以上のインターフェイスを実装することで同じことを実現できます。

次の例では、2つのインターフェイスを作成し、後で両方のインターフェイスをクラスに実装します。

interface A {
   fun printMe() {
      println(" method of interface A")
   }
}
interface B  {
   fun printMeToo() {
      println("I am another Method from interface B")
   }
}

//implements two interfaces A and B
class multipleInterfaceExample: A, B

fun main(args: Array<String>) {
   val obj = multipleInterfaceExample()
   obj.printMe()
   obj.printMeToo()
}

上記の例では、2つのサンプルインターフェイスA、Bを作成し、「multipleInterfaceExample」という名前のクラスに、以前に宣言した2つのインターフェイスを実装しました。 上記のコードは、ブラウザに次の出力を生成します。

method of interface A
I am another Method from interface B