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— негизги класс.Car—Vehicleдан мурас алган,numberOfDoorsмүчөсүн кошкон жанаmakeNoiseметодун кайра аныктаган.ElectricCar—Carдан мурас алган,batteryLevelжанаisElectricмүчөлөрүн кошкон жанаcurrentSpeedмүчөсүн кайра аныктаган.
Мурус чынжыры: Vehicle -> Car -> ElectricCar. Ар бир класс ушул чынжырда бардык ачык (же башка контекстте жеткиликтүү) мүчөлөргө жеткире алат.