Acurrated
Speeder
Challenger
Theory
Pull-Up Field
Pull-Up Method
Push Down Field
Push Down Method
Theory

What is Refactoring?
Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code yet improves its internal structure. It is a disciplined way to clean up code that minimizes the chances of introducing bugs. In essence when you refactor you are improving the design of the code after it has been written.
Why Should You Refactor? I don't want to proclaim refactoring as the cure for all software ills. It is no "silver bullet." Yet it is a valuable tool, a pair of silver pliers that helps you keep a good grip on your code. Refactoring is a tool that can, and should, be used for several purposes.

You're now a Star! Isso significa que não errou nenhum problema! Mas tenta melhorar esse tempo, ok?! Vamos ver se isso irá continuar!

Você é um Analista! Isso significa que você respondeu as respostas corretamente num tempo bem rápido! Ah...mas na próxima etapa não terá tanta sorte!

A Easy Problem
The Easy Company Ltd. hired you for developing a software. You know they work as a car seller, so, choose the best option who fit on the best class diagram:
Create a class car and put every car atribute inside it. Create the superclass vehicle with standard atributes for a vehicle and then, create a class car which inherits from vehicle and . Criar uma sobrecarga de método do Analista e do Técnico na superclasse e excluir os dois métodos da subclasse. Copiar o método do Técnico e passar ele para a superclasse e depois complementar o método com o do Analista.
Problema
Temos uma superclasse Colaborador e dentro dela temos as classes de Analista e Técnico. Dentro dessas duas subclasses temos os métodos Executa(), porém, o Executa do Analista realiza mais operações que o Executa do Técnico. Selecione a melhor opção para resolver esse problema.
Copiar os métodos das subclasses e passar para a superclasse. Copiar o método do analista e passar para a superclasse já que ele é mais complexo que o do técnico. Criar uma sobrecarga de método do Analista e do Técnico na superclasse e excluir os dois métodos da subclasse. Copiar o método do Técnico e passar ele para a superclasse e depois complementar o método com o do Analista.
Problema
Temos uma superclasse Colaborador e dentro dela temos as classes de Analista e Técnico. Dentro dessas duas subclasses temos os métodos Executa(), porém, o Executa do Analista realiza mais operações que o Executa do Técnico. Selecione a melhor opção para resolver esse problema.
Copiar os métodos das subclasses e passar para a superclasse. Copiar o método do analista e passar para a superclasse já que ele é mais complexo que o do técnico. Criar uma sobrecarga de método do Analista e do Técnico na superclasse e excluir os dois métodos da subclasse. Copiar o método do Técnico e passar ele para a superclasse e depois complementar o método com o do Analista.
Problema
Temos uma superclasse Colaborador e dentro dela temos as classes de Analista e Técnico. Dentro dessas duas subclasses temos os métodos Executa(), porém, o Executa do Analista realiza mais operações que o Executa do Técnico. Selecione a melhor opção para resolver esse problema.
Copiar os métodos das subclasses e passar para a superclasse. Copiar o método do analista e passar para a superclasse já que ele é mais complexo que o do técnico. Criar uma sobrecarga de método do Analista e do Técnico na superclasse e excluir os dois métodos da subclasse. Copiar o método do Técnico e passar ele para a superclasse e depois complementar o método com o do Analista.