Junior
Kas ir mantošana un polimorfisms attiecīgajos datu tipos?
sobes.tech AI
Atbilde no AI
Mantošana ir mehānisms, kas ļauj vienai klasei (mantotājklasei, apakšklasei) pārņemt citas klases (pamatklases, vecāklases) īpašības un uzvedību. Tas veicina koda atkārtotu izmantošanu un klases hierarhiju veidošanu.
Polimorfisms ir spējas dažādu klases objektu reaģēt uz to pašu ziņojumu (metodes izsaukumu) dažādi, atkarībā no to konkrētā tipa. Mantošanas kontekstā tas bieži izpaužas caur pamatklases metožu pārrakstīšanu apakšklasē.
Piemērs (Java):
// Pamatklase
class Animal {
public void makeSound() {
System.out.println("Dzīvnieks izdala skaņu");
}
}
// Apakšklase
class Dog extends Animal {
@Override // Metodes pārrakstīšana
public void makeSound() {
System.out.println("Gau!");
}
}
// Apakšklase
class Cat extends Animal {
@Override // Metodes pārrakstīšana
public void makeSound() {
System.out.println("Mau!");
}
}
class Main {
public static void main(String[] args) {
Animal myDog = new Dog(); // Objekts Dog, bet atsauce uz Animal
Animal myCat = new Cat(); // Objekts Cat, bet atsauce uz Animal
myDog.makeSound(); // Izsauc Dog metodi
myCat.makeSound(); // Izsauc Cat metodi
}
}
Šajā piemērā:
- Mantošana: Klases
DogunCatmanto noAnimal. - Polimorfisms: Mainīgie
myDogunmyCatnorāda uzDogunCatobjektu attiecīgi, lai gan to tips irAnimal. IzsaucotmakeSound(), tiek izpildīta objekta metode, nevis atsauces tips.