Sobes.tech
Junior

Программалоодо мурасым жөнүндө эмне айта аласыз?

sobes.tech AI

AIден жооп

Мурас алуу — бул объектке багытталган программалоонун механизми, ал бир класс (мурас же мурас классы) башка класс (ата же негизги класс) өзгөчөлүктөрү жана ыкмаларын мурас катары алууга мүмкүндүк берет.

Негизги түшүнүктөр:

  • Кодду кайра колдонуу: Мурас алуу мурас класстын мурас алган класска мурда эле бар кодун колдонууга мүмкүндүк берет жана дублдуулукту алдын алат.
  • is-a мамилеси: Мурас алуу "бар" (is-a) мамилесин моделдештирет. Мисалы, "Ит бар жаныбар".
  • Кеңейтүү: Мурас алган класс жаңы өзгөчөлүктөр жана ыкмаларды кошуп же бар ыкмаларды (override) кайра жазып, анын жүрүм-турумун өзгөртө алат.

Swiftте:

  • Мурас алуу гана класстар үчүн колдоо көрсөтүлөт. Структуралар жана энумдар мурас алууну колдобойт.
  • class ачкыч сөзү колдонулат.
  • Мурас алган класс эки нүктө жана ата класс аты менен көрсөтүлөт.
  • Ата класс ыкмалары override ачкыч сөзү менен кайра жазылат.
  • Ата класс ишке ашырылышына super ачкыч сөзү аркылуу жетүүгө болот.

Мисал:

class Animal {
    var name: String

    init(name: String) {
        self.name = name
    }

    func makeSound() {
        print("Белгисиз үн")
    }
}

class Dog: Animal {
    func bark() {
        print("Гав!")
    }

    override func makeSound() {
        print("Гав-гав!")
    }
}

let myDog = Dog(name: "Борон")
myDog.makeSound() // Чыгуу: Гав-гав!
myDog.bark() // Чыгуу: Гав!

Мурас алуу ашыкча же туура эмес колдонулса, коддун ийкемдүүлүгүнө жана тейлөөгө кыйынчылык алып келиши мүмкүн (мисалы, "сезимтал негизги класс маселеси"). Swiftте, көбүнчө, ийкемдүүлүккө жетүү үчүн башка механизмдер — мисалы, композиция жана протоколдор колдонулат.