Sobes.tech
Junior — Middle

Child sinfdagi Init metodining asosiy sinfdan meros olishini yoki uni qayta yozishini hisoblash mumkinmi?

sobes.tech AI

AIdan javob

Deraza Init usulida boladigan sinf, uning asosiy sinfidan amalga oshirilishini meros qilib olmaydi, agar u qayta e'lon qilinsa (ya'ni, shunchaki nomi bilan, ammo o'ziga xos amalga oshirish bilan). Bu holda, metodni qayta yozilgan (override) deb aytiladi. Override qilish, ob'ektning bolalar sinfida chaqirilganda, uning versiyasi ishlatilishini anglatadi, asosiy sinf emas.

Agar Init metodi bolalar sinfida e'lon qilinmagan bo'lsa, u asosiy sinfdan meros qilib olinadi va o'zgartirishsiz ishlatiladi.

C# misoli:

class BaseClass {
    public virtual void Init() {
        Console.WriteLine("Asosiy sinfning Init" );
    }
}

class DerivedClass : BaseClass {
    public override void Init() {
        Console.WriteLine("Bolalar sinfidagi Init");
    }
}

Bu yerda, DerivedClass ichidagi Init, BaseClass metodini qayta yozadi. Agar Init DerivedClassda e'lon qilinmasa, asosiy sinfning amalga oshirilishi ishlatiladi.