জাভাতে, আপনি যেমনটি করতে পারেন:
class MyClass extends SuperClass implements MyInterface, ...
কোটলিনে কি একই কাজ করা সম্ভব? ধরে SuperClass
নেওয়া বিমূর্ত এবং বাস্তবায়ন করে নাMyInterface
উত্তর:
ইন্টারফেস বাস্তবায়ন এবং শ্রেণীর উত্তরাধিকারের মধ্যে কোনও সিনট্যাক্টিক পার্থক্য নেই । :
এখানে যেমন দেখানো হয়েছে তেমনভাবে কোলনের পরে সমস্ত ধরণের কমা-বিচ্ছিন্নভাবে তালিকাবদ্ধ করুন:
abstract class MySuperClass
interface MyInterface
class MyClass : MySuperClass(), MyInterface, Serializable
একাধিক শ্রেণির উত্তরাধিকার নিষিদ্ধ যখন একাধিক ইন্টারফেস একক শ্রেণীর দ্বারা প্রয়োগ করা যেতে পারে।
যখন কোনও শ্রেণি প্রসারিত হয় (অন্য শ্রেণি) বা প্রয়োগ করা হয় (এক বা সার্টারাল ইন্টারফেস): এটি ব্যবহারের সাধারণ বাক্য গঠন
class Child: InterfaceA, InterfaceB, Parent(), InterfaceZ
নোট করুন যে ক্লাস এবং ইন্টারফেসের ক্রমটি কোনও ব্যাপার নয়।
এছাড়াও, লক্ষ্য করুন যে ক্লাসের জন্য আমরা বর্ধিত ক্লাসের জন্য বন্ধুত্বগুলি প্যারেন্ট ক্লাসের প্রধান নির্মাতাকে বোঝায়। অতএব, যদি পিতাম শ্রেণীর প্রধান নির্মাতা একটি যুক্তি নিয়ে থাকেন তবে শিশু শ্রেণীরও সেই যুক্তিটি পাস করা উচিত।
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")
}
}