Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Duvida sobre herança

No estudo de polimorfismo foi apresentado o seguinte código:

'''` public class TesteContas { public static void main(String[] args) {

    ContaCorrente cc = new ContaCorrente(111,222);
    cc.deposita(100.00);

    ContaPoupanca cp = new ContaPoupanca(222,222);
    cp.deposita(200.00);

    cc.transfere(10.00,cp);

    System.out.println("CC: " + cc.getSaldo());
    System.out.println("CP: " + cp.getSaldo());
}

} '''`

Substituindo o ContaCorrente e o ContaPoupanca por Conta o código apresenta o mesmo resultado, mas na teoria qual seria a diferença se o código fosse escrito desta forma?

'''` public class TesteContas { public static void main(String[] args) {

    Conta cc = new ContaCorrente(111,222);
    cc.deposita(100.00);

    Conta cp = new ContaPoupanca(222,222);
    cp.deposita(200.00);

    cc.transfere(10.00,cp);

    System.out.println("CC: " + cc.getSaldo());
    System.out.println("CP: " + cp.getSaldo());
}

} '''`

Obrigado.

1 resposta
solução!

Oi Rafael, tudo bem?

Polimorfismo é a capacidade de um objeto assumir muitas formas. O uso mais comum de polimorfismo na OOP ocorre quando uma referência de classe pai é usada para se referir a um objeto da classe filho. Qualquer objeto Java que possa passar em mais de um teste IS-A é considerado polimórfico.

Vantagens do polimorfismo

  1. Sobrecarga de método permite que métodos que executam funções similares ou intimamente relacionadas sejam acessados através de um nome comum. Por exemplo, um programa executa operações em uma matriz de números que podem ser int, float ou double type. A sobrecarga de método permite que você defina três métodos com o mesmo nome e diferentes tipos de parâmetros para manipular as operações da matriz.

  2. A sobrecarga de métodos pode ser implementada em construtores, permitindo diferentes maneiras de inicializar objetos de uma classe. Isso permite que você defina vários construtores para lidar com diferentes tipos de inicialização.

  3. A sobreposição de métodos permite que uma subclasse use todas as definições gerais que uma superclasse fornece e adicione definições especializadas através de métodos substituídos.

  4. A substituição de métodos funciona em conjunto com herança para permitir a reutilização de código de classes existentes sem a necessidade de recompilação.