// come al solito, tutto nel package

package linguaggio;

// la classe deve essere astratta perche' tutte le
// istruzioni sono o istruzioni di stampa, o sequenza,
// oppure if. Dal momento che non esiste una istruzione che
// non sia di questi tre tipi, la sovraclasse deve essere
// astratta

// la classe ha sempre il nome al singolare e la prima
// lettera maiuscola a prescindere da quello che dice il
// testo

public abstract class Istruzione implements Cloneable {

// in questo caso, nessuna componente; non e' detto che sia
// sempre cosi'

// dal momento che non ci sono componenti, non realizziamo
// nessuno degli altri metodi; se ci fossero state
// componenti, si sarebbero dovuti realizzare i metodi
// get/set, equals, hashCode, e toString

// serve pero' clone, altrimenti non si potrebbe fare
// i.clone() su un oggetto Istruzione

  public Object clone() {
    try {
      return super.clone();
    }
    catch(CloneNotSupportedException e) {
      return null;
    }
  }
}


