Sobes.tech
Junior

Эркиндик жана полиморфизм деген эмне шилтемелүү маалыматтар түрүндө?

sobes.tech AI

AIден жооп

Мероси калитим, механизми, ки имкон медиҳад, ки як синф (синфи фарзанд, синфи насл) хусусиятҳо ва рафторҳои синфи дигар (синфи асосӣ, падар)ро қабул кунад. Ин такрори истифодаи коди кӯмак мекунад ва сохтану тартиб додани ҳиерархияҳои синфҳоро дастгирӣ мекунад.

Полиморфизм қобилияти объектҳои синфҳои гуногун аст, ки ба як паём (завқи метод) дар асоси навъи мушаххасашон ҷавобҳои гуногун медиҳанд. Дар контексти калитим, ин аксар вақт тавассути иваз кардани методҳои синфи асосӣ дар синфи фарзандӣ ба вуҷуд меояд.

Масалан (Java):

// Синфи асосӣ
class Animal {
    public void makeSound() {
        System.out.println("Ҳайвонот садо мебароранд");
    }
}

// Синфи фарзанд
class Dog extends Animal {
    @Override // Иваз кардани метод
    public void makeSound() {
        System.out.println("Гав!");
    }
}

// Синфи фарзанд
class Cat extends Animal {
    @Override // Иваз кардани метод
    public void makeSound() {
        System.out.println("Мяу!");
    }
}

class Main {
    public static void main(String[] args) {
        Animal myDog = new Dog(); // Объект Dog, аммо ишора ба типи Animal
        Animal myCat = new Cat(); // Объект Cat, аммо ишора ба типи Animal

        myDog.makeSound(); // Методи Dog-ро даъват мекунад
        myCat.makeSound(); // Методи Cat-ро даъват мекунад
    }
}

Дар ин мисол:

  • Калитим: Синфҳои Dog ва Cat аз Animal мерос мегиранд.
  • Полиморфизм: Променливҳои myDog ва myCat ба объектҳои Dog ва Cat ишора мекунанд, ҳарчанд ки онҳо аз навъи Animal мебошанд. Вақте ки makeSound() даъват мешавад, методи объект иҷро мешавад, на навъи ишора.