با سلام خدمت کاربران گرامی سایت پی وی لرن و کاربرانی که علاقمند به دوره آموزش کاتلین هستند. در جلسه گذشته با سازنده ها و انواع آن ها در کاتلین آشنا شدیم. در این جلسه به آموزش inheritance در کاتلین می پردازیم.
پیش از شروع آموزش inheritance در کاتلین ، باید به توضیح کلمه inheritance بپردازیم.
inheritance به معنای وراثت و به ارث بردن است.
در زبان برنامه نویسی از جمله کاتلین inheritance به معنای تطابق برخی ویژگی های child کلاس با mother کلاس است.
در کاتلین کلاس اصلی “Any” را می نامیم که کلاس سطح بالاتر‘any’ در کاتلین است.
همانند همه OOPS ها، کاتلین هم این چنین قابلیتی را با استفاده از کلمه کلیدی با نام “:” فراهم کرده است.
در کاتلین همه چیز به صورت پیش فرض به صورت فینال و نهایی در نظر گرفته شده است لذا باید از کلمه کلیدی “open” در مقابل اعلان کلاس استفاده کرد.
این کار موجب می شود که کلاس مورد نظر، ویژگی کلاس مادر را به ارث ببرد.
در مثال زیر می توانید کاربرد قابلیت inheritance را در کاتلین ببینید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import java.util.Arrays open class ABC { fun think () { print("Hey!! i am thiking ") } } class BCD: ABC(){ // inheritence happend using default constructor } fun main(args: Array<String>) { var a = BCD() a.think() } |
قطعه کد بالا خروجی زیر را در مرورگر تولید می کند.
1 | Hey!! i am thiking |
حالا می خواهیم روش ()think را در کلاس child لغو نماییم.
در مثال زیر دو کلاس ایجاد کرده و یکی از توابع آن را با کلاس child تعویض نموده ایم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | import java.util.Arrays open class ABC { open fun think () { print("Hey!! i am thinking ") } } class BCD: ABC() { // inheritance happens using default constructor override fun think() { print("I Am from Child") } } fun main(args: Array<String>) { var a = BCD() a.think() } |
قطعه بالا child کلاس را با عنوان inherited نام گذاری می کند و خروجی به شکل زیر در مرورگر تولید می نماید.
متنند جاوا، کاتلین اجازه استفاده از multiple inheritances یا وراثت چندگانه را نمی دهد.
در این جلسه به آموزش inheritance در کاتلین پرداختیم.
در این جلسه بعد به آموزش کار با interface در کاتلین می پردازیم.
با پی وی لرن همراه باشید.