O documento discute os principais conceitos de orientação a objetos: herança permite estender funcionalidades de superclasses para subclasses; polimorfismo permite que objetos sejam referenciados de diferentes formas; abstração permite declarar classes que não podem ser instanciadas diretamente.
2. Revisão
● Objetos: dados + métodos
● Contrutores
● Restrições: private, protected, default e public
● Acessores: getters e setters
● Encapsulamento
● Conceito: tem um, tem muitos (Ex.: Empresa, Funcionario)
4. Sobrescrever o metodo
● Sobrescrever, reescrever, ou do inglês override
● Bonificação diferenciada
5. Polimorfismo
● Variavel do tipo Funcionario não guarda um objeto
Funcionario, mas sim uma referencia ao objeto.
● Na herança vimos que todo Gerente é um Funcionario.
● Polimorfismo é a capacidade de um objeto poder ser
referenciado de várias formas.
● ATENÇÃO!!
● Objeto não se transforma, ele “nasce” e “morre” do mesmo
tipo, o que muda é como podemos referencia-lo.
6. Abstração
● Podemos declarar que uma classe é abstrata quando não
faz sentido podermos instancia-la.
● Exemplo, temos a classe Pessoa e as classes PessoaFisica
e PessoaJuridica, que estendem Pessoa. Não faria sentido
poder instanciar Pessoa.
● Métodos também podem ser abstratos (somente se classe
for abstrata)
● Quando usar?