Imagem de fundo

Considere o código Java a seguir:class Conta { private...

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.


A

O código não compila, pois a subclasse ContaPoupanca não pode chamar o método depositar() da superclasse.


B

O código não compila, pois o atributo saldo é private e, por isso, não pode ser utilizado indiretamente pela subclasse.


C

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.


D

O código compila e imprime 1600.0, pois o rendimento é calculado apenas sobre o saldo inicial informado no construtor.


E

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.