Sasea

623 palavras 3 páginas
Herança e Polimorfismo

1 Herança 1.1 Definição 1.2 Reescrita de métodos 2 Polimorfismo 3 Exercícios

1

1 Herança 1.1 Definição
Herança é utilizada para ganharmos polimorfismo e reaproveitamento de código. Imagine que tenhamos as seguintes classes:

2

Repare que as duas classes possuem os atributos (id, nome, endereco) e as classes também possuem um metodo para autenticação. E o mais importante, as classes são “Clientes”, mas cada uma, um cliente mais específico. Se nossas classes atendem á esses requisitos podemos utilizar herança reaproveitamento de código e para ganharmos polimorfismo, assunto que falaremos adiante. Sendo assim, podemos modelar nossas classes da seguinte forma:

duas duas para mais

Quando utilizamos herança, as subclasses (ClientePessoaFisica e ClientePessoaJuridica) herdam automaticamente todos os atributos e métodos da superclasse (Cliente), ajudando no reaproveitamento de código. Por isso não declaramos os atributos e métodos da superclasse nas subclasses. O código fonte dessas classes ficariam da seguinte forma:

3

Utilizamos a palavra chave “extends” para declarar que a subclasse estende da superclasse. Ma há algo interessante aqui, todos os atributos são “private”, ou seja, eles só são acessíveis de dentro da própria classe, se tentarmos acessar diretamente os atributos que estão na superclasse na subclasse, não iremos conseguir. Apesas de a classe ter herdado esses atributos, eles não são acessível pela subclasse. Pra resolver esse problema temos o modificador de acesso “protected”, que torna os atributos e métodos acessíveis somente para a própria classe e para as suas subclasses. Mas cuidado, atributos e métodos “protected” também são acessíveis por classes que estão no mesmo pacote.

1.2 Reescrita de métodos
Imagine que em um certo momento, a classe “ClientePessoaJuridica”, ao invés de autenticar apenas com a senha, também verificasse se o cliente está ativo. Como estamos

4

herdando esse método da

Relacionados