1
resposta

Dúvidas sobre polimorfismo e interfaces

No exemplo citado no curso de OO fiquei bem confuso, ArrayList, HashSet, interfaces. Tem algum outro exemplo mais simples pra eu conseguir assumilar polimorfismo de sobrescrita, de sobrecarga com interfaces?

1 resposta

Fala, Edson!!! Tudo bem? Como vai?

Vamos tentar esclarecer esses pontos:

  • ArrayList: é uma matriz dinâmica que permite que um programador armazene qualquer número de itens. Por exemplo:
ArrayList listaCarros = new ArrayList();
 listaCarros.Add("Ka");
 listaCarros.Add("Onix");
 listaCarros.Add("Fox");

Além de armazená-los podemos manipular esses dados da maneira que quisermos, como remover, organizar e demais situações.

  • HashSet: aqui eu vou indicar esse link que trás, além de explicar sobre hashSet, fará um comparativo entre ele e ArrayList .

  • Interfaces: chama-se interface pois é a maneira pela qual poderemos conversar com um Autenticavel. Interface é a maneira através da qual conversamos com um objeto. Lemos a interface da seguinte maneira: "quem desejar ser autenticável precisa saber autenticar dado um inteiro e retornando um booleano". Ela é um contrato onde quem assina se responsabiliza por implementar esses métodos (cumprir o contrato). Uma interface pode definir uma série de métodos, mas nunca conter implementação deles. Ela só expõe o que o objeto deve fazer, e não como ele faz, nem o que ele tem. Como ele faz vai ser definido em uma implementação dessa interface.

  • Sobrescrita: se trata de uma redefinição de métodos. Também está muito bem esclarecido e exemplificado nesse link. Vai te ajudar bastante a entender na prática com o exemplo demonstrado.

  • Sobrecarga: A sobrecarga de métodos (overload) é um conceito do polimorfismo que consiste basicamente em criar diversas "versões" de um mesmo método utilizado, ou seja,você cria mais métodos vindo de um mesmo método. A Sobrecarga permite utilizar o nome dado no método em mais de um método, porém sua lista de argumentos terão que ser diferentes para haver uma distinção entre eles.

public class operacoesMatematicas{
 public int operacoesMatematicas(int a,int b){
       return a+b;
 }
  public double operacoesMatematicas(double a,double b){
        return a+b;
   }
  public String operacoesMatematicas(String a,String b){
        return a+b;
  }
   public static void main(String args[]){
     operacoesMatematicas calcula= new operacoesMatematicas();
     System.out.println(calcula.operacoesMatematicas(5,1));
    System.out.println(calcula.operacoesMatematicas(2.5,3.5));
    System.out.println(calcula.operacoesMatematicas("Aju","dou?"));
  }
}

Na saída teremos:

6
6
Ajudou?

Edson, espero ter contribuído p/ seus estudos!

Vamos me frente!!! ;-)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software