
public class ContaImposto
  extends Conta {

  public ContaImposto (double val, long num) {
    super (val,num); 
  } 

  public void credito(double val) {
    super.credito(val - (val * 0.01));
  }/*
      Esta redefinicao vai contra a nocao de subtipo indicada
      pela declaracao "extends", ja que o comportamento da
      operacao "credito" de "ContaImposto" nao e compativel
      com o comportamento da operacao "credito" de "Conta".
      Isto e, pode-se distinguir objetos de "Conta" dos objetos 
      de "ContaImposto" apenas usando "credito" e "print_saldo".

      Redefinicoes devem preservar a semantica (o significado)
      da operacao original; o exemplo acima mostra como nao
      deve-se usar o mecanismo de redefinicao. 
       */
}
