1. Interface terve zés Perényi Zsigmond, Pronaxis Kft. ( z sigmond.perenyi @pronaxis.com ) OOD tanfolyam (2003. július 1.) Objektum-orientált alapfogalmak
2.
3.
4.
5.
6. Interface implementációja List get(i :int ) : Object set (i:int, o:Object) add(i:int, o:Object) remove(i:int) interface <<realize>> ArrayList get(i :int ) : Object set (i:int, o:Object) add(i:int, o:Object) remove(i:int) LinkedList get(i :int ) : Object set (i:int, o:Object) add(i:int, o:Object) remove(i:int) <<realize>> o szt ály o szt ály A … .. … .. L … .. … .. különböző implementációk
7.
8. Polimorfizmus A különböző objektumok, melyek azonos interface-szel rendelkeznek, másként implementálhatják az interface által definiált metódusokat. Vagyis egy adott üzenet által kiváltott metódusnak több alakja lehet: polimorfizmus . request -> (futás idejű összekötés: dynamic binding) -> method Azonos interface-szel rendelkező (= azonos típusú) objektumok felcserélhetők. “ Program to an interface!" A kód írásakor csak annyit követelünk meg, hogy egy adott objektum valósítsa meg az adott interface-t, vagyis képes legyen elfogadni a neki szánt üzeneteket. Így a kód írásakor tulajdonképpen olyan metódusokat hívunk, amelyek lehet, hogy nem is léteznek (virtuális metódusok)... Amikor egy objektumnak üzenetetet küldünk, az, hogy pontosan melyik metódus hívódik meg, mind az üzenettől, mind a célobjektumtól függ.
9. Programozás a gyakorlatban tervezési konstrukciók -> nyelvi eszközök -> programozói eszközök M inden osztály (implicit módon) egyben egy interface is, amely az osztály által definiált összes metódust tartalmazza! osztály öröklés ↔ interface öröklés - Class + Interface abstract class Java + Class + pure virtual class C++ Többszörös öröklés Megvalósítása Többszörös öröklés Megvalósítása Class Interface