Você está na página 1de 3

> Classe Pessoa

- private String nome;


- private String sexo;
- private int idade;

public void fazerAniver();

>> Pessoa lê livro

> Classe Livro


- private String titulo;
- private String autor;
- private int totPag;
- private int pagAtual;
- private boolean aberto;
- private Pessoa leitor;

public void detalhes();

> Interface Publicar


public abrir();
public fechar();
public folhear();
public avançarPag();
public voltarPag();

>> Encapsulamento, Herança, Polimorfismo <<

>>>>>>>> HERANÇA <<<<<<<<<<<<<


- Segundo pilar da POO;
- Uma classe filha herda atributos e métodos de uma classe mãe;
- Permite basear uma nova classe na definição de uma classe previamente
existente;
- Toda classe tem atributos e métodos;
- Você pode fazer herança sem encapsulamento; você pode fazer encapsulamento sem
herança;

> Ex:
Classe Pessoa

- Subclasse aluno;
* matri;
* curso;
* cancelarMatri();

- Subclasse professor;
* especialidade;
* salario;
* receberAumento();

- Subclasse funcionario;
* setor;
* trabalhando;
* mudarTrabalho();

Eles herdam atrbutos e métodos da classe Pessoa;

Class Pessoa extends Pessoa


>>>>>>>>>>>> HERANÇA PT2 <<<<<<<<<<<<<<<<

- Navegação pela herança;


> Classe mãe A
> Classe filha de A - AA
> Classe filha de AA e neta de A - AAA
AAA tem tudo que AA tem, AA tem tudo que A tem, ou seja, AAA tem tudo que A tem.

> Superclasse é a que está em cima e subclasse está em baixo;


> Depende do ponto referêncial;
> Um superclasse também pode ser uma subclasse;
> Uma subclasse tem tudo que a superclasse tem;
> Classe sem superclasse é considerada a classe raiz;
> Classe sem subclasse é considerada a classe folha;
> Os netos da superclasse são os descendentes dela
> Ancestral é do neto pra baixo;
> Especialização é da raiz pra folha;
> Generalização é da folha pra raiz;

>>>>>>>>>>> TIPOS DE HERANÇA <<<<<<<<<<<<

> HERANÇA DE IMPLEMENTAÇÃO; > herança pobre;


- Implementar uma classe abstrata, ou seja, a classe filha só fica com
os atributos e métodos da mãe, sem implementar mais nada.

> HERANÇA PARA DIFERENÇA;


- Especialização é o processo de uma classe filha ser projetada em termos de como
ela é diferente de sua progenitora.
A definição de classe da filha incluirá apenas os elementos que a tornam
diferentes de sua progenitora.

>> classes e métodos abstract e final

class abstract = não pode ser instanciada, não gera objetos. Só pode servir como
classe mãe;
método abstract = declarado, mas não implementado na classe mãe;
só pode ser colocado na interface ou classe abstrata;

class final = não pode ser herdada por outra classe. Obrigatoriamente é uma folha;
não pode ter classes filhas;

método final = não pode ser sobrescrito pelas suas subclasses. Obrigatoriamente
herdado;

>>>>>>>>>> POLIMORFISMO <<<<<<<<<<<<<<<<<

> Último pilar da POO;


- Muitas formas;
- Permite que um mesmo nome rep´resente vários comportamentos diferentes;
- Ex: posso acordar de várias maneiras diferentes;
> Assinatura do método - Quantidade e os tipos de parâmetros;

public metodo calcMedia(n1: real, n2: real): real > 2 parâmetros real

public metodo calcMedia(v1: real, v2: real): inteiro; > 2 parâmetro real

> O tipo de valor que retorna não importa, ou seja, os dois métodos tem a mesma
assinatura;
>>>>>>>>>> TIPOS DE POLIMORFISMO <<<<<<<<<

> SOBREPOSIÇÃO:

> ACONTECE QUANDO SUBSTITUIMOS UM MÉTODO DE UMA SUPERCLASSE NA SUA SUBCLASSE


UTILIZANDO A MESMA ASSINATURA;
> MÉTODOS DE MESMA ASSINATURA EM CLASSES DIFERENTES;

- Ex:
Classe abstrata animal
- Class Mamifero, Class réptil, Class peixe, Class ave
>>> São especificações da classe animal; da classe raiz p/ folha

>>> Preciso desenvolver um método abstrato usando @Override em todas as classe


filhas;

> SOBRECARGA:

> MÉTODOS DE MESMO NOME NA MESMA CLASSE E COM ASSINATURAS DIFERENTES;

- novo, leve
novo e pesado
velho e leve
velho e pesado

Você também pode gostar