class IstruzioneStampa extends Istruzione {
  private String contenuto;

// assumiamo che il contenuto possa essere nullo

  public IstruzioneStampa(String c) {
    contenuto=c;
  }

  public String getContenuto() {
    return contenuto;
  }

// assumiamo di poter anche cambiare il contenuto di una
// istruzione di stampa

  public void setContenuto(String c) {
    contenuto=c;
  }

  public String toString() {
    return "stampa("+contenuto+")";
  }

// dato che contenuto puo' valere null, va fatto il
// controllo prima di invocare un qualsiasi metodo su di
// esso

  public boolean equals(Object o) {
    if(!this.stessaClasse(o))
      return false;

    IstruzioneStampa s=(IstruzioneStampa) o;

    if(this.contenuto==null) {
      if(s.contenuto!=null)
         return false;
    }
    else if(!this.contenuto.equals(s.contenuto))
      return false;

    return true;
  }

  public int hashCode() {
    if(this.contenuto==null)
      return 0;
    else
      return this.contenuto.hashCode();
  }

// dato che String non e' clonabile, basta il clone
// ereditato da Istruzione 

}
