1. | Hamburger mit Vererbung Die Superklasse Hamburger zeichnet einen Standard-Hamburger mit einer Fleischfüllung. |
|
|
Die Klasse Hamburger hat Instanzvariablen GPanel p und double price die als protected deklariert werden, damit alle Unterklassen auf sie zugreifen können. Die Methoden createBurger(), drawBead(), drawFilling() und getPreis sind so zu deklarieren, dass im GPanel eine einfache Hamburgerzeichnung entsteht. Die Applikationsklasse HamburgerApp wird verwendet, um eine Hamburgerinstanz zu erstellen und im GPanel zu zeichen. Der unten stehende Programmcode ist eine mögliche (unvollständige) Vorlage für die Klasse Hamburger und für die Applikationsklasse HamburgerApp. |
// Hamburger.java import ch.aplu.util.GPanel; import java.awt.Color; public class Hamburger { protected GPanel p = new GPanel(); protected double price = 5.0; public Hamburger() { p.title("BurgerKing"); p.window(-10, 10, -10, 10); } public void createBurger() { drawBread(); drawFilling(); } private void drawBread() { } protected void drawFilling() { } public void displayPrice() { } } // HamburgerApp.java public class HamburgerApp { public HamburgerApp() { Hamburger burger = new Hamburger(); // Cheeseburger burger = new Cheeseburger(); // Veggieburger burger = new Veggieburger(); // BigMac burger = new BigMac(); burger.createBurger(); burger.getPrice(); } public static void main(String[] args) { new HamburgerApp(); } } |
2. | Hamburger mit Vererbung und Polymorphie Übernehmen Sie alle Klassen aus der Aufgabe 3. Schreiben Sie eine neue Applikationsklasse TakeAway unter der Verwendung der Polymorphie: Man deklariert eine Instanzvariable Burger vom Typ Hamburger. Mit einem InputDialog wird abgefragt, welchen Hamburgertyp man bestellen möchte. Je nach Wahl wird zur Laufzeit die Zuweisung burger = new Hamburger() vorgenommen und dadurch der passende Hamburger zusammengestellt und der richtige Preis angezeigt.. |
|
. | Ein Klassendesign unter Verwendung von abstrakten Klassen und Methoden, finden Sie unter www.aplu.ch/forum. |