

Seu próximo nível começa aqui
Seu desenvolvimento não pode ter limites. Garanta sua Assinatura Ilimitada e libere uma preparação completa com os melhores professores do Brasil.
Considere o código Java a seguir:
class Conta {
private double saldo;
public Conta(double saldoInicial) {
this.saldo = saldoInicial;
}
public void depositar(double valor) {
saldo += valor;
}
public double getSaldo() {
return saldo;
}
}
class ContaPoupanca extends Conta {
private double taxa;
public ContaPoupanca(double saldoInicial, double taxa) {
super(saldoInicial);
this.taxa = taxa;
}
public void aplicarRendimento() {
double rendimento = getSaldo() * taxa;
depositar(rendimento);
}
}
public class Principal {
public static void main(String[] args) {
ContaPoupanca cp = new ContaPoupanca(1000.0,
0.10);
cp.depositar(500.0);
cp.aplicarRendimento();
System.out.println(cp.getSaldo());
}
}Com base no código apresentado, assinale a alternativa correta.
O código não compila, pois a subclasse ContaPoupanca não pode chamar o método depositar() da superclasse.
O código não compila, pois o atributo saldo é private e, por isso, não pode ser utilizado indiretamente pela subclasse.
O código compila e imprime 1650.0, pois a conta recebe um depósito de 500.0 e, em seguida, aplica rendimento de 10% sobre o saldo atualizado.
O código compila e imprime 1600.0, pois o rendimento é calculado apenas sobre o saldo inicial informado no construtor.
O código compila e imprime 1500.0, pois o método aplicarRendimento() apenas calcula o rendimento, mas não altera o saldo da conta.