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?
Abraço.
eu acabei esquecendo (fiz pelo replit)
import.java.util.Scanner;
public class UsaHer {
public static void main(String args[]){
DataInputStream a;
System.out.println(“DIGITE O NOME DO CORRENTISTA:\n”);
a = new DataInputStream(System.in);
String nome = a.readLine();
System.out.println("DIGITE O NÚMERO DA CONTA:\n");
a = new DataInputStream(System.in);
String conta = a.readLine();
public class Correntista {
String nome;
String conta;
double saldo=0;
public Correntista (String n, String c)
{
nome = n;
conta = c;
}
public String getNome(){return nome;}
public String getConta(){return conta;}
public double depositar(double deposito){
saldo=saldo+deposito;
return saldo;
}
public double getSaldo(){
return saldo;
}
}
public class ClienteNormal extends Correntista{
public ClienteNormal (String n, String c){
super (n,c);
}
public double getSaque(double saque){
saldo = saldo - (saque*0.05);
return saldo;
}
}
public class ClienteEspecial extends Correntista {
public ClienteEspecial (String n, String c, double saque, double sq){
super (n,c);
}
public double getSaque(double saque){
saldo = saldo - (saque*0.01);
return saldo;
}
}
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.
Abraço.