Kotlinのinterfaceについて学びます。
Javaのそれと同様な存在ですが、Kotlinのinterfaceはimplementキーワードがありません。
どーでもいいか、などJavaといくつか違いがあります。

サンプルをみていきましょう。

1.interface定義方法

interface インターフェイス名 {
}

になります。

2.プロパティは宣言できるが、interfaceはバッキングフィールドを持てない

var url : String

と定義していますが、変数の中身を代入していません。
interfaceをimplementするクラス内で、中身を代入する必要があります。

3.abstractと異なりinterfaceは中身を実装することができる

Javaと違いinterfaceで中身を実装することができます。
ここで定義した関数の中身を実行する場合は、super.success()のように
superキーワードを使用して呼び出します。

4.継承と異なり、interfaceは複数implementすることが可能

Javaと同様interfaceは複数implementすることが可能です。
形式は、

class クラス名 : インターフェイス名1 , インターフェイス名2 {
}

のように,で区切ります。

5.プロパティはoverrideが必要

interfaceで宣言しているプロパティや関数をimplementしているクラスで宣言する際は、
overrideキーワードがabstractと同様に必要になります。