Di Java, Anda bisa melakukan hal seperti:
class MyClass extends SuperClass implements MyInterface, ...
Apakah mungkin melakukan hal yang sama di Kotlin? Asumsi SuperClass
abstrak dan tidak diimplementasikanMyInterface
Di Java, Anda bisa melakukan hal seperti:
class MyClass extends SuperClass implements MyInterface, ...
Apakah mungkin melakukan hal yang sama di Kotlin? Asumsi SuperClass
abstrak dan tidak diimplementasikanMyInterface
Jawaban:
Tidak ada perbedaan sintaksis antara implementasi antarmuka dan pewarisan kelas . Cukup daftarkan semua jenis dengan dipisahkan koma setelah titik dua :
seperti yang ditunjukkan di sini:
abstract class MySuperClass
interface MyInterface
class MyClass : MySuperClass(), MyInterface, Serializable
Pewarisan beberapa kelas dilarang sementara banyak antarmuka dapat diimplementasikan oleh satu kelas.
Ini adalah sintaks umum yang digunakan ketika sebuah kelas diperluas (kelas lain) atau diimplementasikan (satu atau antarmuka serveral):
class Child: InterfaceA, InterfaceB, Parent(), InterfaceZ
Perhatikan bahwa urutan kelas dan antarmuka tidak menjadi masalah.
Juga, perhatikan bahwa untuk kelas yang diperpanjang kita menggunakan tanda kurung, tanda kurung mengacu pada konstruktor utama dari kelas induk. Oleh karena itu, jika konstruktor utama kelas induk mengambil argumen, maka kelas anak juga harus meneruskan argumen itu.
interface InterfaceX {
fun test(): String
}
open class Parent(val name:String) {
//...
}
class Child(val toyName:String) : InterfaceX, Parent("dummyName"){
override fun test(): String {
TODO("Not yet implemented")
}
}