Polimorfismo

Polimorfismo

Nesse questionário você vai treinar suas habilidades em Polimorfismo, um dos pilares da Programação orientada a objetos (POO).

 
 

1 – Defina o que é polimorfismo e qual sua importância no mundo Orientado a Objetos (POO)?

2 – Quais são os tipos de polimorfismos que existem em Orientação a Objetos

3 – Considere a classe:


public carro() {

    private int velocidade = 1;

    public void acelera() {
        velocidade += 1;
    }

    public void acelera(int aceleracao) {
        velocidade += aceleracao;
    }

}

a) Qual tipo de polimorfismo é apresentado?

b) Quais são os sinais que indicam a presença de Polimorfismo?

4 – Considere as seguintes assinaturas de métodos:


  	public String calculaSalario(int diasTrabalhados, String Cargo){
         ...
    }
    
	public double calculaSalario(int diasTrabalhados, String Cargo){
         ...
    }

  

Estes métodos podem ser considerados polimórficos? Por quê?

5 – Considere o seguinte diagrama de classes:

 
 
a) Se considerarmos ainda a existência de um método denominado calculaSalario() em ambas as classes. Que tipo de polimorfismo foi aplicado?
 
b) Construa um software que implementa a classe funcionário com: 
 
Funcionário: 
  • id; 
  • nome; 
  • alocacao; 
 
Gerente 
  • id;
  • nome;
  • alocacao;
  • quantidadeDeSubordinados;
 
c) De acordo com o diagrama, um gerente também é um funcionário. Implemente o método calcula Salario() para que um gerente ganhe uma bonificação de 40% do seu salário utilizando o polimorfismo?

Respostas

1- O polimorfismo permite que os programadores definam comportamentos diferentes para um mesmo método, tornando o código mais legível e facilitando a manutenção. Além disso, dados os tipos de polimorfismo é possível que dentro de uma herança um comportamento seja reescrito a medida que a classe se torna mais específica. Isso permite que seja criada uma abstração mais próxima mundo real facilitando a compreensão do código como um todo.

2- Existem dois tipos de polimorfismo: vertical e horizontal. O Polimorfismo horizontal acontece quando um método é sobrecarregado com diferentes formas. Por exemplo:


    public void andar(int passos){}
    public void andar(int passos, String direcao){}
    

Já o polimorfismo vertical acontece dentro de uma herança, ou seja, um método que foi escrito na classe pai pode ser sobrescrito na classe filha. Isso permite que sejam definidos comportamentos específicos para cada classe a medida que ela se especializa.


    public class carro{
        public void trocarMarcha(){
        	// comportamento básico
        }
    }
    
    
    public class gol extends carro{
        public void trocarMarcha(){
        	// comportamento especializado
        }
    }
    

3- A) Polimorfismo horizontal

B) Os métodos Acelera() possuem o mesmo nome e estão na mesma classe.

4- Não podem. A mudança no tipo de retorno não torna um método sobrecarregável

5- a) Polimorfismo vertical

b) e c)

  
public class Funcionario(){
       public int id;
       public String nome;
       public String alocacao;
       public double salario;
       
}
    
public class Gerente(){
       public int id;
       public String nome;
       public String alocacao;
       public double salario;
       public int quantidadeDeSubordinados;
       
       public double calculaSalario(){
           return salario * 1.40;
       }
}

Vinicius dos Santos

Apenas um apaixonado por Ciência da Computação e forma com que ela pode transformar vidas!

Deixe uma resposta