2.6 Erinnerung: Programmverwaltung Quellencode (getrennt übersetzbare Programmteile) (source code) Übersetzer (compiler, assembler) Objektcode (object/binary code) Binder (linker, linkage editor) Objektprogramm (object/executable program) Lader (loader) startbereites Objektprogramm (im Adreßraum eines Prozesses) Start
Java: Übersetzung in Zwischencode (byte code): javac Test.java Suchen externer Typen in Verzeichnissen gemäß Umgebungsvariable CLASSPATH, z.B. in Unix CLASSPATH =.:/usr/lohr/classes:/import/java/classes Interpretation des Zwischencodes: java Test zunächst bindender Lader (linking loader), sucht benutzte Typen ebenfalls gemäß CLASSPATH; nach Einbinden aller benötigten.class-Dateien Start [ alternativ: Laden/Binden nach Bedarf (on demand) ]
3 Polymorphie und Vererbung 3.1 Polymorphe Typsysteme Polymorphie (polymorphism) Universelle PolymorphieAd-hoc-Polymorphie, Überladen (overloading) Einschluß-Polymorphie,parametrische Polymorphie, z.B. Vererbung (inheritance) Generizität (genericity) bei objektorientierten Sprachen
Beispiele - generische Schnittstellen und Klasse in GJ: interface Queue { void append(T item); T remove() throws QueueUnderflow; } class LinkedQueue implements Queue { private class Cell {.....}. public LinkedQueue() {.....} } interface Map {.....}