/*
 * Funktion.java	01.07.99
 *
 *
 * Beilage zum Buch "Software-Entwurf mit UML"
 * von J.Seemann & J. Wolff von Gudenberg,
 * Springer-Verlag, 1999
 * 
 */

/** <i>repr&auml;sentiert ein Funktionsobjekt im Parsebaum */
 
public abstract class Funktion implements Knoten, Cloneable
{
   // Objektreferenz
	 Knoten argument;
	
	 // Methoden
   /** wertet den Knoten aus durch Aufruf der Funktion */
	 public double auswerten()  
   {  
   	  return funktion(argument.auswerten()); 
   } 
   
   /** liefert Wert der Funktion */
	 public abstract double funktion(double x);
  
   /** liefert Namen der Funktion */
	 public abstract String getName();

   /** liefert eine Referenz auf eine Kopie des Funktionsobjekts */
	 public abstract Object fclone();
}