Ja. Alles, was Karte
verlangt hat war:
public abstract void gruss();
Jede Geschwisterklasse hat das auf ihre eigene Weise getan.
Hier ist das vollständige Programm, mit allen drei Kartenklassen und ihren jeweiligen Objekten. Wenn wir in diesem Jahr knapp an Grußkarten sind, sollten wir vielleicht das Programm in unsere Entwicklungsumgebung kopieren und es ein paar Mal laufen lassen.
import java.util.Scanner; abstract class Karte { String empfaenger; public abstract void gruss(); } class Feiertag extends Karte { public Feiertag( String e ) { empfaenger = e; } public void gruss() { System.out.println("Dear " + empfaenger + ",\n"); System.out.println("frohe Feiertage!\n\n"); } } class Geburtstag extends Karte { int alter; public Geburtstag ( String e, int jahre ) { empfaenger = e; alter = jahre; } public void gruss() { System.out.println("Dear " + empfaenger + ",\n"); System.out.println("alles Gute zum " + alter + ". Geburtstag.\n\n"); } } class Valentin extends Karte { int kuesse; public Valentin ( String e, int k ) { empfaenger = e; kuesse = k; } public void gruss() { System.out.println("Dear " + empfaenger + ",\n"); System.out.println("herzliche Gruesse und Kuesse,\n"); for ( int j = 0; j < kuesse; j++ ) System.out.print("X"); System.out.println("\n\n"); } } public class KarteTester { public static void main ( String[] args ) { String name; Scanner scan = new Scanner( System.in ); System.out.println("Ihr Name"); name = scan.nextLine(); Feiertag feiern = new Feiertag( name ); feiern.gruss(); Geburtstag geb = new Geburtstag( name, 21 ); geb.gruss(); Valentin val = new Valentin( name, 7 ); val.gruss(); } }
Das ist ein ziemlich langes Programm ― 80 Zeilen! Denkt Ihr, dass wir ohne große Probleme ein paar mehr Kartenklassen entwerfen könnten?