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те, көбүнчө, ийкемдүүлүккө жетүү үчүн башка механизмдер — мисалы, композиция жана протоколдор колдонулат.