آموزش رایگان صفر تا صد کاتلین (Kotlin) به زبان ساده
-
معرفی کاتلین
-
شروع کار با Kotlin
-
سینتکس (Syntax) در Kotlin
-
چاپ خروجی در Kotlin
-
کامنتها در Kotlin
-
متغیرها در Kotlin
-
انواع داده در Kotlin
-
اپراتورها در Kotlin
-
همه چیز درباره رشتهها (Strings) در Kotlin
-
همهچیز دربارهی Boolean در Kotlin
-
شرطها در Kotlin: if ... else
-
آشنایی با when در Kotlin
-
حلقههای While در Kotlin
-
دستورات Break و Continue در Kotlin
-
آرایهها در Kotlin
-
حلقه for در Kotlin
-
محدودهها (Ranges) در Kotlin
-
توابع در Kotlin
-
برنامهنویسی شیءگرا در Kotlin
-
کلاسها و اشیاء در Kotlin
-
کانستراکتور (Constructor) در Kotlin
-
توابع (Functions) در کلاسهای Kotlin
-
وراثت (Inheritance) در Kotlin
وراثت (Inheritance) در Kotlin
در زبان برنامهنویسی Kotlin، میتوان یک کلاس را طوری تعریف کرد که ویژگیها (properties) و توابع (functions) خود را به کلاس دیگری منتقل کند. این مفهوم وراثت (Inheritance) نام دارد.
🔹 دستهبندی کلاسها در وراثت
وقتی یک کلاس از کلاس دیگری ارثبری میکند، دو نوع کلاس داریم:
- کلاس والد (Superclass / Parent Class) 👉 کلاسی که ویژگیها و توابع از آن به کلاسهای دیگر منتقل میشود.
- کلاس فرزند (Subclass / Child Class) 👉 کلاسی که از یک کلاس والد ارثبری میکند.
💡 مثال ساده از وراثت در Kotlin
در این مثال، کلاس MyChildClass
از کلاس MyParentClass
ارثبری میکند:
// کلاس والد (Superclass)
open class MyParentClass {
val x = 5
}
// کلاس فرزند (Subclass)
class MyChildClass: MyParentClass() {
fun myFunction() {
println(x) // مقدار x از کلاس والد به ارث برده شده است
}
}
// استفاده از کلاس فرزند
fun main() {
val myObj = MyChildClass()
myObj.myFunction() // خروجی: 5
}
🔍 تحلیل کد بالا
✅ کلمه کلیدی open
بهصورت پیشفرض، کلاسها در Kotlin نهایی (final) هستند، یعنی نمیتوان از آنها ارثبری کرد. برای اینکه یک کلاس والد بتواند ویژگیهایش را به کلاسهای دیگر بدهد، باید قبل از تعریف آن از open
استفاده کنیم:
open class MyParentClass {
val x = 5
}
✅ نحوه ارثبری در Kotlin
برای اینکه یک کلاس از کلاس دیگر ارثبری کند، باید بعد از نام کلاس فرزند، یک :
بگذاریم و سپس نام کلاس والد را بنویسیم:
class MyChildClass: MyParentClass()
🎯 چرا و چه زمانی از وراثت استفاده کنیم؟
وراثت در برنامهنویسی یک ویژگی بسیار مهم است که کد را خواناتر و قابل استفاده مجدد (Reusable) میکند.
🛠 مزایای استفاده از وراثت
✅ کاهش کدهای تکراری 🤩
بهجای نوشتن چندباره ویژگیها و توابع مشابه در چند کلاس، میتوان آنها را در یک کلاس والد تعریف کرد و در کلاسهای دیگر از آن استفاده کرد.
✅ سازماندهی بهتر کدها 🏗
اگر چند کلاس ویژگیهای مشابه داشته باشند، میتوان آن ویژگیها را در کلاس والد قرار داد و از بهمریختگی جلوگیری کرد.
✅ ایجاد ارتباط منطقی بین کلاسها 🔗
مثلاً اگر در برنامهای چند نوع حیوان داشته باشیم، میتوانیم یک کلاس والد Animal
ایجاد کنیم و سپس کلاسهای فرزند مانند Dog
و Cat
از آن ارثبری کنند.
🎯 چالش برای شما! 🔥
فرض کنید میخواهید یک کلاس Vehicle
(وسیله نقلیه) بسازید که ویژگی speed
(سرعت) را در خود داشته باشد. سپس کلاسهای Car
(ماشین) و Bike
(موتور) را طوری تعریف کنید که این ویژگی را از کلاس والد ارثبری کنند. کد را بنویسید و تست کنید! 🚗🏍💨