Fiquei com um pouco de duvida em geral em relação a herança multipla
em relação a o restante consegui entender um pouco
Outra coisa na classe contaPoupanca fez um override no metodo sacar correto?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Fiquei com um pouco de duvida em geral em relação a herança multipla
em relação a o restante consegui entender um pouco
Outra coisa na classe contaPoupanca fez um override no metodo sacar correto?
Oi, Levi! Tudo bem?
Em Java, a herança múltipla não é permitida diretamente, o que significa que uma classe não pode herdar de mais de uma classe ao mesmo tempo. Por exemplo, o código abaixo não pode ser válido em Java:
public class ContaPoupanca extends Conta, Pagamento {
// código da classe omitido
}
No entanto, podemos simular herança múltipla utilizando interfaces, que permitem definir métodos que devem ser implementados pelas classes que "herdam" essas interfaces, como no exemplo abaixo:
public interface Pagamento {
void processarPagamento(double valor);
}
public class ContaPoupanca extends Conta implements Pagamento {
@Override
public void processarPagamento(double valor) {
// implementação do método
}
}
Em relação ao override no método sacar da classe ContaPoupanca, é isso mesmo. Na classe ContaPoupanca, o método sacar foi sobrescrito (override) da classe Conta. A sobrescrita de métodos é uma forma de modificar o comportamento de um método herdado de uma superclasse. No exemplo, o método sacar na classe ContaPoupanca adiciona uma taxa de saque antes de chamar o método sacar da superclasse Conta:
public class ContaPoupanca extends Conta {
private double taxaDeJuros;
public void calcularJuros() {
double juros = this.getSaldo() * taxaDeJuros;
System.out.println("Juros atual: " + juros);
}
@Override
public void sacar(double valor) {
double taxaSaque = 0.01;
super.sacar(valor + taxaSaque); // Chama o método sacar da superclasse Conta
}
}
No método sacar da ContaPoupanca, adicionamos uma taxa de saque (taxaSaque) ao valor que está sendo sacado e, em seguida, chama o método sacar da superclasse (super.sacar(valor + taxaSaque)), o que evita a duplicação de código e adiciona a funcionalidade específica da ContaPoupanca.
Espero ter ajudado!
Um forte abraço e bons estudos!