This shows you the differences between two versions of the page.
|
poo-is-ab:laboratoare:09 [2025/09/23 20:14] razvan.cristea0106 |
poo-is-ab:laboratoare:09 [2025/11/05 13:38] (current) razvan.cristea0106 [Overloading vs Overriding] |
||
|---|---|---|---|
| Line 27: | Line 27: | ||
| ^ **Overloading (Compile-Time Polymorphism)** ^ **Overriding (Run-Time Polymorphism)** ^ | ^ **Overloading (Compile-Time Polymorphism)** ^ **Overriding (Run-Time Polymorphism)** ^ | ||
| | Se aplică funcțiilor/metodelor din **aceeași clasă** | Apare în ierarhiile de clase (**moștenire**) | | | Se aplică funcțiilor/metodelor din **aceeași clasă** | Apare în ierarhiile de clase (**moștenire**) | | ||
| - | | Funcțiile/metodele au **același nume**, dar **diferă** prin **numărul sau tipul parametrilor** | O funcție/metodă dintr-o clasă derivată **suprascrie** comportamentul unei **funcții virtuale** din clasa de bază | | + | | Funcțiile/metodele au **același nume**, dar **diferă** prin **numărul, tipul sau ordinea parametrilor** | O metodă dintr-o clasă derivată **suprascrie** comportamentul unei **funcții virtuale** din clasa de bază | |
| | Alegerea funcției este făcută de către **compilato**r pe baza semnăturii acesteia | Alegerea funcției care va fi apelată este făcută la **momentul execuției**, în funcție de **tipul dinamic** al obiectului | | | Alegerea funcției este făcută de către **compilato**r pe baza semnăturii acesteia | Alegerea funcției care va fi apelată este făcută la **momentul execuției**, în funcție de **tipul dinamic** al obiectului | | ||
| | **Nu** necesită funcții virtuale/virtual pure. | **Necesită** utilizarea funcțiilor virtuale/virtual pure în clasa de bază. | | | **Nu** necesită funcții virtuale/virtual pure. | **Necesită** utilizarea funcțiilor virtuale/virtual pure în clasa de bază. | | ||