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() даъват мешавад, методи объект иҷро мешавад, на навъи ишора.