zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Ja. Alles, was Karte verlangt hat war:

public abstract void gruss();

Jede Geschwisterklasse hat das auf ihre eigene Weise getan.

Vollständiges Programm

Hier ist das vollständige Programm, mit allen drei Kartenklassen und ihren jeweiligen Objekten. Wenn Sie in diesem Jahr knapp an Grußkarten sind, möchten Sie vielleicht das Programm nach NotePad 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();

  }
}

FRAGE 9:

Das ist ein ziemlich langes Programm ― 80 Zeilen! Glauben Sie, dass Sie ohne große Probleme ein paar mehr Kartenklassen entwerfen könnten?