Crie uma classe para representar uma conta corrente, com os atributos: titular, tipo de cliente, agência e saldo. Implemente os métodos para depositar uma quantia, sacar uma quantia e obter o saldo.
Para cada saque será debitada também uma taxa de operação equivalente à 0,5% do valor sacado. Clientes especiais pagam taxas de operação de apenas 0,1% do valor sacado.
Não poste só o enunciado, pois dá a entender que você quer que alguém faça pra ti. Mostre o que já tentou. Recomendo a leitura: Como fazer uma boa pergunta?
Quão idêntica ao enunciado deve ser a implementação? Pois enunciado pede 4 coisas (titular, tipo de cliente, agencia e saldo) e você só criou 3, duas com nomes distintos (nome, conta e saldo). Também não são pedidos métodos get, então getNome e getConta não seriam necessários.
Continuando:
é legal que você usou herança pra cada tipo de cliente, mas o enunciado não pede isso. Acredito que a ideia é diferenciar o cliente no método sacar() usando o atributo tipo do cliente e um if;
o enunciado não pede para os métodos depositar e sacar retornarem o saldo, apenas alterá-lo. Eles podem ser simplesmente public void em vez de public double;
acredito que fica mais claro (e é mais comum) dar nomes aos métodos que indicam a operação realizada, comumente indicado por verbos. Então, em vez getSaque(), pode chamar o método de sacar(), como você fez com depositar();
seu método getSaque() precisa subtrair do saldo tanto o valor do saque quanto a taxa. Do jeito que você fez, está subtraindo só a taxa. Basicamente:
saldo = saldo - (saque + (saque * 0.05)); // ou 0.01, pra conta especial.
Se precisa seguir o enunciado o mais próximo possível, revise essas diferenças.