Sobes.tech
Junior

Swift программалоо тилиндеги класстар мурас жыйнагы жөнүндө айтып бериңиз.

sobes.tech AI

AIден жооп

Swift класстары бир гана мурас алууну колдойт. Ар бир класс бир ата-эне классынан мурас алат, ал эми мурас чынжыры негизги класс менен башталат, ал эч нерседен мурас албайт жана төмөндө тукумдары аркылуу уланат.

Мурас өзгөчөлүктөрү:

  • Ашыруу (Overriding): Тукум класс ата-эне классындагы методдорду, мүнөздөмөлөрдү жана скрипттерди кайра аныктай алат. Бул үчүн override ачкыч сөзү колдонулат.
  • Ашырууну алдын алуу (Preventing Overrides): Мүчөнү final ачкыч сөзү менен белгилеп, кайра аныктоону алдын алса болот. Бардык класс final деп жарыяланат.
  • Ата-эне класска жетүү: Тукум класс ата-эне классындагы ачык мүчөлөргө super ачкыч сөзү аркылуу жеткире алат. Бул ата-эне методун чакырууда же ата-эне мүчөсүнө жетүүдө пайдалуу.

Мисал:

// Негизги класс
class Vehicle {
    var currentSpeed = 0.0

    func makeNoise() {
        // Бош реализация
    }
}

// Vehicle классынан мурас алган тукум класс
class Car: Vehicle {
    var numberOfDoors = 4

    // `makeNoise` методун кайра аныктоо
    override func makeNoise() {
        print("Beep beep")
    }
}

// Car классынан мурас алган тукум класс
class ElectricCar: Car {
    var batteryLevel = 100.0

    // Жаңы мүчөнү кошуу
    let isElectric = true

    // `currentSpeed` мүчөсүн кайра аныктоо
    override internal var currentSpeed: Double {
        didSet {
            if currentSpeed > 0 {
                print("Электр машинеси кыймылда")
            }
        }
    }
}

Бул мисалда:

  • Vehicle — негизги класс.
  • CarVehicleдан мурас алган, numberOfDoors мүчөсүн кошкон жана makeNoise методун кайра аныктаган.
  • ElectricCarCarдан мурас алган, batteryLevel жана isElectric мүчөлөрүн кошкон жана currentSpeed мүчөсүн кайра аныктаган.

Мурус чынжыры: Vehicle -> Car -> ElectricCar. Ар бир класс ушул чынжырда бардык ачык (же башка контекстте жеткиликтүү) мүчөлөргө жеткире алат.