Junior
Эркин түрлөрүндө мурас жана полиморфизм деген эмне?
sobes.tech AI
AIден жооп
Мурас калуу — бул жаңы класс (подкласс/балдар классы) бар болгон класс (суперкласс/ата-эне класс) өзүнүн касиеттерин (майдандарын) жана жүрүм-турумун (методдорду) мурас кылууга мүмкүндүк берген механизм. Бул функцияны кайра колдонууга жана "бар" (is-a) мамилелерин түзүүгө жардам берет.
Полиморфизм — бул ар кандай класстардын объектилери бир эле аталыштагы методго ар башкача жооп кайтаруу мүмкүнчүлүгү, ишке ашыруу учурунда алардын конкреттүү түрүнө жараша. Бул коддун ийкемдүүлүгүн жана кеңейтүүлүгүн камсыздайт, подкласс объектилерин супер класс аркылуу иштетүүгө мүмкүндүк берет.
Бул концепциялар шилтемелүү түрлөрдө (кластарда) негизги роль ойнойт:
- Мурас калуу: Подкласс супер класс мүчөлөрүнө жеткиликтүү болуп, өзүнүн касиеттерин кошуу же мурас алган методдордун жүрүм-турумун өзгөртүү (overriding) мүмкүнчүлүгүнө ээ болот. Подкласс объектиси кайда болбосун колдонулушу мүмкүн, анда супер класс объектиси күтүлөт.
- Полиморфизм: Бир эле мурас хиерархиясына кирген ар кандай объектилер бирдей код менен иштетилиши мүмкүн, бир эле методду чакырып, бирок анын ишке ашырылышы конкреттүү объекттин түрүнө жараша болот.
Javaда мисал:
// Ата-эне класс (суперкласс)
class Animal {
public void makeSound() {
System.out.println("Дыбыс чыгарат");
}
}
// Подкласс (балдар класс), Animalдан мурас алат
class Dog extends Animal {
// Ата-эне класс методун кайра жазуу
@Override
public void makeSound() {
System.out.println("Гав!");
}
}
// Подкласс (балдар класс), Animalдан мурас алат
class Cat extends Animal {
// Ата-эне класс методун кайра жазуу
@Override
public void makeSound() {
System.out.println("Мяу!");
}
}
// Полиморфизмдин мисалы
public class PolymorphismExample {
public static void main(String[] args) {
Animal myAnimal = new Animal(); // ата-эне объект
Animal myDog = new Dog(); // подкласс объектиси, шилтемеси ата-эне класска
Animal myCat = new Cat(); // подкласс объектиси, шилтемеси ата-эне класска
myAnimal.makeSound(); // Натыйжа: Дыбыс чыгарат
myDog.makeSound(); // Натыйжа: Гав! (полиморфизм — Dog методун чакыруу)
myCat.makeSound(); // Натыйжа: Мяу! (полиморфизм — Cat методун чакыруу)
}
}