Deve essere il periodo degli esami che tutti si chiedono come fare gli esercizi!!!
codice:
public class ParcoMezzi extends TipoAuto {
int contatore;
ArrayList<Auto> lista;

public ParcoMezzi(String t,int c){
super(t);
this.contatore=c;
lista = new ArrayList<Auto> ();
}

public ParcoMezzi(){

}

public String getEntraMezzo(){ 
return "";
}

public String getEscemezzo(){
return ""; 
}

public String getMezzoEsistente(){
return "";
}
}
Questa classe è concettualmente sbagliata. Stai estendendo il super-tipo, per poi creare al suo interno una collection che prende solo il tipo, a che pro?
La classe auto è un gestore, consente di gestire appunto una serie di informazioni.
Avrebbe senso se fosse fatta in questo modo

codice:
public class ParcoMezzi implements IParcoMezzi {

List<TipoAuto> lista;

public ParcoMezzi(){
   lista = new ArrayList<TipoAuto> ();
}

public String getEntraMezzo(String targa){ 
return "";
}

public String getEscemezzo(String targa){
return ""; 
}

public String getMezzoEsistente(String targa){
return "";
}
}

public interface IParcoMezzi{
public String getEntraMezzo(String targa);
public String getEscemezzo(String targa);
public String getMezzoEsistente(String targa);
}
ogni metodo come fa a dire che entra un mezzo? In particolare cosa deve fare in quel caso? Restano validi i consigli di franksisca