Desespero; como passar um classe como parametro e exec. ela

Tenho uma classe principal que vai chamar um formulario onde se a escolha for 0 ela vai passar como paramentro a classe (cCLIENTE) se 1 vai passar (cFORNECEDOR);
Ai que vem o pipino pq na classe cFORMULARIO nao tem como eu executar os metodos da pCLASSE que seria como se fosse pCLASSE=cCLIENTE
o unico jeito que vi de resolver isso é com o CAST
sera que alguem tem uma outra solucao para este problema ???

exemplos abaixo:

public class cFORMULARIO {
public cFORMULARIO(Class pCLASSE) {
new pCLASSE();
System.out.println("Titulo: "+pCLASSE.getTITULO());
}
}

public class cPRINCIPAL {

public cPRINCIPAL(int iTELA) {
    MontaTela(iTELA);
}

public void MontaTela(int iTELA)  {
	switch (iTELA) {
      case 0 : new cFORMULARIO(cCLIENTE.class);
      break;
      case 1 : new cFORMULARIO(cFORNECEDOR.class);        
      break;          
    }               
}

public static void main(String[] args) {
new cPRINCIPAL(0);
}

}

public class cCLIENTE {
public cCLIENTE() {
}

public String getTITULO() {
	return "Cadastro Clientes";
}

}

public class cFORNECEDOR {
public cFORNECEDOR() {
}

public String getTITULO() {
	return "Cadastro Fornecedores";
}

}

Tenta isto:

public interface Titulo {
    public String getTitulo();
}

Depois extende:

public class Cliente implements Titulo {
    public String getTitulo() {
        return "titulo cliente";
    }
}

public class Fornecedor implements Titulo {
    public String getTitulo() {
        return "titulo fornecedor";
    }
}

Daí formulário recebe e forma generalizada Titulo:

public class Formulario {
    public Formulario(Titulo titulo) {
        System.out.println(titulo.getTitulo());
    }
} 

Na hora de usar:

public enum Opcao {
    CLIENT(0), FORN(1);
    private int value;
    Opcao(int value) {
        this.value = value;
    }
    public int getValue() {return this.value; }
}

public class Principal {
private Opcao opcao;

public Principal(final Opcao opcao) {
    this.opcao = opcao;
    setup();
}

public void setup() {
    Formulario form;
    switch (opcao) {
        case Opcao.CLIENT.getValue() : form =  new Formulario(new Cliente());
        break;
        case Opcao.FORN.getValue() : form =  new Formulario(new Fornecedor());
        break;
    }
}

public static void main(String[] args) {
    new Principal(Opcao.FORN);
}

} 

Outra coisa, vai ao site da Sun e pesquisa por code conventions. T+