با سلام خدمت کاربران گرامی سایت پی وی لرن و کاربرانی که علاقمند به دوره آموزش کاتلین هستند. در جلسه قبل به آموزش inheritance پرداختیم. در این جلسه آموزش کار با interface در کاتلین را مورد بحث قرار می دهیم.
لزوم اهمیت مبحث interface، آموزش کار با interface در کاتلین را مطرح می کند.
interface در کاتلین دقیقآ مشابه interface در جاوا ۸ است و لذا روش های به کارگیری و اجرا در هر دو مشابه یکدیگر است.
یک interface می تواند توسط یک کلاس اجرا شود تا از قابلیت تعریف شده آن استفاده نماید.
در جلسه ۶ در یک مثال مربوط به کلاس داخلی ناشناس یا Anonymous inner class از interface استفاده نمودیم.
در این جلسه ما مطالب بیشتری راجع به interface خواهیم آموخت.
همانطور که در کد زیر نشان داده شده است، کلید واژه “interface” برای تعریف یک interface در کاتلین مورد استفاده قرار می گیرد.
1 2 3 4 5 | interface ExampleInterface { var myVar: String // abstract property fun absMethod() // abstract method fun sayHello() = "Hello there" // method with default implementation } |
در مثال فوق، ما یک interface را به نام «ExampleInterface» ایجاد کرده و در درون آن دو روش انتزاعی و دو ویژگی را به کار بردیم.
به تابع “ ()sayHello ” نگاه کنید که یک روش اجرا و پیاده سازی محسوب می شود.
در مثال زیر از یک interface کاربری فوق را در یک کلاس اجرا خواهیم کرد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | interface ExampleInterface { var myVar: Int // abstract property fun absMethod():String // abstract method fun hello() { println("Hello there, Welcome to TutorialsPoint.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()) } |
قطعه کد بالا خروجی زیر را در مرورگر تولید می کند.
1 2 | Calling hello(): Hello there, Welcome to TutorialsPoint.Com! Message from the Website-- Happy Learning |
اگرچه کاتلین از inheritances چندگانه پشتیبانی نمی کند، اما می تواند interfaces چندگانه را در یک زمان اجرا نماید.
در مثال زیر یک interface ایجاد کرده و سپس هر دو را در یک کلاس اجرا می نماییم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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() |
در مثال بالا ما به سادگی دو interface با نام های A و B در کلاسی با نام “multipleInterfaceExample” ایجاد کرده ایم.
می توانیم بعداً دو اعلام interfaces را اجرا نماییم.
قطعه کد بالا خروجی زیر را در مرورگر تولید می کند.
1 2 | method of interface A I am another Method from interface B |
در آموزش کار با interface در کاتلین با ویژگی ها و خواص interfaces ها آشنا شدیم.
در جلسه بعدی به آموزش کنترل دید Visibility Control در کاتلین خواهیم پرداخت.
با پی وی لرن همراه باشید.