Begriffliches zu Methoden Vererbung (Struktursicht, Finalisieren von Klassen) public class GraphicalElement { Color fill, outline; public void draw (Graphics g) { System.out.println("cannot draw"); } } Signatur Resultattyp Methodenname Formale Parameter public class Rectangle extends GraphicalElement { float x,y; int width, height; public boolean isQuadrat () { return width == height; } } public void draw (Graphics g, Dummy z) { g.drawRect((int)x, (int)y, width, height); } Methodenrumpf Parameterliste + Methodenrumpf = erweiterter Methodenrumpf Wolfgang Goerigk: Objektorientierte Programmierung in Java (SS 2009) 102 Vererbung (Struktursicht, Finalisieren von Klassen) 103 Vererbung (Struktursicht, Finalisieren von Klassen) public class Rectangle { Color fill, outline; float x,y; int width, height; public boolean isQuadrat () { return width == height; } public void draw (Graphics g) { System.out.println("cannot draw"); } } public class GraphicalElement { Color fill, outline; public void draw (Graphics g) { System.out.println("cannot draw"); } } public class Rectangle { Color fill, outline; float x,y; int width, height; public boolean isQuadrat () { return width == height; } public void draw (Graphics g) { System.out.println("cannot draw"); } public class GraphicRectangle extends Rectangle { public void draw (Graphics g) { g.drawRect((int)x, (int)y, width, height); } } } Wolfgang Goerigk: Objektorientierte Programmierung in Java (SS 2009) Wolfgang Goerigk: Objektorientierte Programmierung in Java (SS 2009) 104 Wolfgang Goerigk: Objektorientierte Programmierung in Java (SS 2009) 105 Vererbung (Struktursicht, Finalisieren von Klassen) Vererbung (Struktursicht, Finalisieren von Klassen) public class Rectangle { Color fill, outline; float x,y; int width, height; public boolean isQuadrat () { return width == height; } public void draw (Graphics g) { System.out.println("cannot draw"); } } Welche Komponenten hat eine Klasse ? Attribute (Instanzvariablen) – alle Attribute der Superklasse (und damit aller Superklassen) – alle eigenen (lokalen) Attribute public class GraphicRectangle { Color fill, outline; float x,y; int width, height; public boolean isQuadrat () { return width == height; } public void draw (Graphics g) { g.drawRect((int)x, (int)y, width, height); } Methoden – alle Methoden der Superklasse, die nicht durch eine gleiche lokale Methode (Name und Signatur) überschrieben werden – alle lokalen Methoden } Wolfgang Goerigk: Objektorientierte Programmierung in Java (SS 2009) 106 Vererbung (Struktursicht, Finalisieren von Klassen) Wolfgang Goerigk: Objektorientierte Programmierung in Java (SS 2009) 108 Wolfgang Goerigk: Objektorientierte Programmierung in Java (SS 2009) 107