Java'da şu işlemleri yapabilirsiniz:
class MyClass extends SuperClass implements MyInterface, ...
Aynı şeyi Kotlin'de yapmak mümkün mü? Varsayım SuperClass
soyuttur ve uygulanmazMyInterface
Yanıtlar:
Arabirim uygulaması ile sınıf mirası arasında sözdizimsel bir fark yoktur . :
Burada gösterildiği gibi tüm türleri iki nokta üst üste işaretinden sonra virgülle ayırarak listeleyin :
abstract class MySuperClass
interface MyInterface
class MyClass : MySuperClass(), MyInterface, Serializable
Birden çok sınıf kalıtımı yasaklanırken, birden çok arabirim tek bir sınıf tarafından uygulanabilir.
Bu, bir sınıf genişlerken (başka bir sınıf) veya uygularken (bir veya sunucu arabirimleri) kullanılacak genel sözdizimidir:
class Child: InterfaceA, InterfaceB, Parent(), InterfaceZ
Sınıfların ve arayüzlerin sırasının önemli olmadığını unutmayın.
Ayrıca, genişletilmiş sınıf için parantez kullandığımıza dikkat edin, thee parantthesis, ana sınıfın ana yapıcısını ifade eder. Bu nedenle, ana sınıfın ana kurucusu bir argüman alırsa, çocuk sınıf da bu argümanı iletmelidir.
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")
}
}