English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل Kotlin الأساسي

تحكم Kotlin في العملية

الوظائف في Kotlin

النصوص في Kotlin

Kotlin موجه بالأوjects (OOP)

الصفحات الابسترة (Abstract)

في هذا المقال، ستتعلم الأنواع التجريدية وكيفية تنفيذها في Kotlin (باستخدام الأمثلة).

مثل Java، تستخدم كلمة المفتاح abstract لتعريف الفئات التجريبية في Kotlin. لا يمكنك إنشاء كائن من الفئة التجريبية (لا يمكنك إنشاء كائن من الفئة التجريبية). ولكن يمكنك النسخ منها فئات الفرعية.

مثل Java، تستخدم كلمة المفتاح abstract لتعريف الفئات التجريبية في Kotlin. لا يمكنك إنشاء كائن من الفئة التجريبية (لا يمكنك إنشاء كائن من الفئة التجريبية). ولكن يمكنك النسخ منها فئات الفرعية.

abstract class Person {
    
    var age: Int = 40
    fun displaySSN(ssn: Int) {
        println("رقم التأمين الاجتماعي الخاص بي هو: $ssn.")
    }
    abstract fun displayJob(description: String)
}

في هذا السياق،

  • أنشئ فئة التجريبية Person. لا يمكنك إنشاء كائن من هذه الفئة.

  • تملك هذه الفئة خصائص غير تجريبية مثل age وطرق غير تجريبية displaySSN(). إذا كنت بحاجة إلى تغيير هذه العضوية في فئة الفرعية، يجب أن يتم تسميتها باستخدام كلمة المفتاح open.

  • تملك هذه الفئة طريقة تجريبية displayJob() ليست لها أي تنفيذ، يجب أن يتم تعديلها في فئة الفرعية.

ملاحظة:الفئات التجريبية دائمًا مفتوحة. لا تحتاج إلى استخدام كلمة المفتاح open بشكل صريح للتنسيق منها فئات الفرعية.

مثال: فئات Kotlin التجريبية والطرق

abstract class Person(name: String) {
    init {
        println("اسمي هو $name.")
    }
    fun displaySSN(ssn: Int) {
        println("رقم التأمين الاجتماعي الخاص بي هو $ssn.")
    }
    abstract fun displayJob(description: String)
}
class Teacher(name: String): Person(name) {
    override fun displayJob(description: String) {
        println(description)
    }
}
fun main(args: Array<String>) {
    val jack = Teacher("Jack Smith")
    jack.displayJob("أنا معلم رياضيات.")
    jack.displaySSN(23123)
}

عند تشغيل هذا البرنامج، الناتج سيكون:

اسمي هو Jack Smith.
أنا معلم رياضيات.
رقم التأمين الاجتماعي الخاص بي هو 23123.

في هذا السياق، تُدرج فئة Teacher من الفئة التجريبية Person

تم إنشاء عنصر Teacher الم对象 jack. عند إنشاء الكائن في الماكينة البدائية، نحن نمرر له المعامل "Jack Smith". هذا سيقوم بتنفيذ المبادئ التوجيهية للفئة Person.

ثم، استخدم جسم Jack لندعو عملية displayJob(). يرجى ملاحظة أن عملية displayJob() تم إعلانها كتعريفة في الصفحة الأصلية وتم تغطيتها في الصفحة الفرعية.
في النهاية، استخدم جسم Jack لندعو عملية displaySSN(). هذه العملية ليست تعريفة، تم إعلانها في صفحة Person (بدلاً من إعلانها في صفحة Teacher).

معرفة ذات صلة: الصفحة المعددية في Kotlin

الصفحة المعددية تشبه الصفحة الابسترة. ولكن، لا يمكن للصفحة المعددية حفظ الحالة، بينما يمكن للصفحة الابسترة القيام بذلك.

بمعنى آخر، قد تكون الصفحة معينة لديها خصائص، ولكن يجب أن تكون تعريفة أو يجب أن تقدم تنفيذ الوصول. ومع ذلك، ليست خصائص الصفحة الابسترة يجب أن تكون تعريفة.