Differences

This shows you the differences between two versions of the page.

Link to this comparison view

poo-ca-cd:laboratoare:visitor [2020/11/23 00:28]
gabriel.tuculina [Overriding, Overloading & Visitor pattern]
poo-ca-cd:laboratoare:visitor [2021/02/01 15:49] (current)
adriana.draghici
Line 85: Line 85:
 <note important>​ La apelarea unei metode suprascrise,​ Java se uită la tipul intern al obiectului pentru care este apelată metoda, NU la referință. Astfel dacă referința are tipul clasei părinte, dar tipul este al clasei copil, JVM va apela metoda din clasa copil. </​note>​ <note important>​ La apelarea unei metode suprascrise,​ Java se uită la tipul intern al obiectului pentru care este apelată metoda, NU la referință. Astfel dacă referința are tipul clasei părinte, dar tipul este al clasei copil, JVM va apela metoda din clasa copil. </​note>​
  
-Câteva reguli pentru suprascriere sunt:+Câteva ​**reguli pentru suprascriere** sunt:
   * metoda suprascrisă are același tip de return și semnatură ca metoda inițială   * metoda suprascrisă are același tip de return și semnatură ca metoda inițială
   * putem avea un tip de return diferit de cel al metodei inițiale, atâta timp cat este un tip ce moștenește tipul de return al metodei inițiale   * putem avea un tip de return diferit de cel al metodei inițiale, atâta timp cat este un tip ce moștenește tipul de return al metodei inițiale
Line 150: Line 150:
   * Compilatorul vă va anunța printr-o eroare dacă ați greșit numele metodei sau tipul parametrilor și această nouă metodă nu suprascrie de fapt o metodă a părintelui   * Compilatorul vă va anunța printr-o eroare dacă ați greșit numele metodei sau tipul parametrilor și această nouă metodă nu suprascrie de fapt o metodă a părintelui
   * Face codul vostru mai ușor de citit, pentru că devine evident când o metodă suprascrie o altă metodă ​   * Face codul vostru mai ușor de citit, pentru că devine evident când o metodă suprascrie o altă metodă ​
 +</​note>​
 +
 +<note tip>
 +O metodă cu argumente de tip primitiv nu poate fi suprascrisă cu o metodă cu tip wrapper.
 +
 +''​public void doSmth(int x)''​ nu poate fi suprascrisă cu ''​public void doSmth(Integer x)''​
 +
 +Metoda cu argument de tip wrapper poate primi si null, insă cea cu tipul primitiv nu, de aceea, neputând să fie păstrată echivalența,​ nu este permisă aceasta suprascriere
 +
 </​note>​ </​note>​
  
Line 453: Line 462:
   * Implementați un [[https://​docs.oracle.com/​en/​java/​javase/​12/​docs/​api/​java.base/​java/​nio/​file/​FileVisitor.html | FileVisitor]],​ extinzând [[https://​docs.oracle.com/​en/​java/​javase/​12/​docs/​api/​java.base/​java/​nio/​file/​SimpleFileVisitor.html | SimpleFileVisitor]] în care suprascrieți metoda de vizitare a fișierelor ​   * Implementați un [[https://​docs.oracle.com/​en/​java/​javase/​12/​docs/​api/​java.base/​java/​nio/​file/​FileVisitor.html | FileVisitor]],​ extinzând [[https://​docs.oracle.com/​en/​java/​javase/​12/​docs/​api/​java.base/​java/​nio/​file/​SimpleFileVisitor.html | SimpleFileVisitor]] în care suprascrieți metoda de vizitare a fișierelor ​
   * Un exemplu similar găsiți în [[http://​docs.oracle.com/​javase/​tutorial/​essential/​io/​walk.html | acest tutorial]]   * Un exemplu similar găsiți în [[http://​docs.oracle.com/​javase/​tutorial/​essential/​io/​walk.html | acest tutorial]]
 +  * **Hint:** Folosiți ''​path.toString().endsWith''​ pentru a verifica extensia fișierelor. Dacă omiteți toString-ul nu o să funcționeze.
  
 ==== Resurse ==== ==== Resurse ====
poo-ca-cd/laboratoare/visitor.txt · Last modified: 2021/02/01 15:49 by adriana.draghici
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0