Sobes.tech
Junior

Mis on pärandum ja polümorfism viiteandmetüüpides?

sobes.tech AI

Vastus AI-lt

Pärilikkus on mehhanism, mis võimaldab ühel klassil (pärilikkusklass, alamklass) omandada teise klassi (baasklass, vanemklass) omadused ja käitumise. See soodustab koodi taaskasutust ja klassi hierarhiate loomist.

Polümorfism on võime erinevate klasside objektidel reageerida samale sõnumile (meetodi kutsumine) erinevalt, sõltuvalt nende konkreetset tüübist. Pärilikkuse kontekstis avaldub see sageli baasklassi meetodite ülekirjutamise kaudu alamklassides.

Näide (Java):

// Baasklass
class Animal {
    public void makeSound() {
        System.out.println("Loom teeb häält");
    }
}

// Alamklass
class Dog extends Animal {
    @Override // Meetodi ülekirjutamine
    public void makeSound() {
        System.out.println("Haug!");
    }
}

// Alamklass
class Cat extends Animal {
    @Override // Meetodi ülekirjutamine
    public void makeSound() {
        System.out.println("Miau!");
    }
}

class Main {
    public static void main(String[] args) {
        Animal myDog = new Dog(); // Dog objekt, kuid viide tüübile Animal
        Animal myCat = new Cat(); // Cat objekt, kuid viide tüübile Animal

        myDog.makeSound(); // Kutsub välja Dog meetodi
        myCat.makeSound(); // Kutsub välja Cat meetodi
    }
}

Selles näites:

  • Pärilikkus: Klassid Dog ja Cat pärivad klassist Animal.
  • Polümorfism: Muutujad myDog ja myCat viitavad vastavalt Dog ja Cat objektidele, kuigi nende tüüp on Animal. Meetodi makeSound() kutsumisel täidetakse objekti klassi meetod, mitte viidetüüpi.