Programação orientada a objetos - java

Prof. Renato Filho
SENAC
2014
Paradigma orientado a objetos
- Herança
- Polimorfismo
HERANÇA
Mecanismo para reutilização de código entre classes.
A classe que é herdada chama-se classe-mãe ou superclasse.
A classe herda chama-se classe-filha ou subclasse.
para que usar herança?


Por que usar herança?

SINTAXE da herança
A palavra extends define que uma classe herda outra.
public class Pessoa {// atributos e métodos}public class PessoaFisica extends Pessoa {}public class PessoaJuridica extends Pessoa{}
Classes finais
Uma classe final não pode ser herdada, identificamos uma classes deste tipo pela presença da palavra-reservada final.
public final class PessoaEstrangeira {}final public class PessoaEstrangeira {}
Controle de acesso
| Nível de acesso | Mesma classe | Classes filhas | Classes do mesmo pacote | Classes de outro pacote |
|---|---|---|---|---|
| public | sim | sim | sim | sim |
| protected | sim | sim | sim | não |
| default | sim | não | sim | não |
| private | sim | não | não | não |
como funciona a herança ao instanciar um objeto?
Ao se instanciar um objeto de uma classe filha todos os construtores da classe mais genérica até a mais específica são chamados.
Palavra reservada super
A palavra reservada super serve para enfatizar a chamada de algum método na classe mãe ou superclasse.
polimorfismo
Através do mecanismo de herança, um determinado objeto pode assumir diferentes formas, o que é chamado de polimorfismo de classe.
Pessoa pessoa;pessoa = new PessoaFisica();pessoa.abrirConta();pessoa = new PessoaJuridica();pessoa.abrirConta();
classes abstratas
"Uma classe abstrata é uma classe que é incompleta, ou é considerado incompleta." - Java Specification Language
Uma classe que não possui instâncias diretas.
classes abstratas
Classes que possuem métodos abstratos.
Métodos abstratos - são declarados mas não implementados.
classes abstratas
Uma classe só deve ser abstrata quando não se há interesse em especificar implementações de alguns métodos que pertençam a ela.
Ou
Herdar métodos abstratos e não se deseja implementar estes métodos na subclasse.
classes abstratas
Usa-se a palavra chave abstract como modificador complementar na declaração da classe.
public abstract class ClasseAbstrata {}
Interfaces
Uma interface é uma forma de implementar contratos para generalizar objetos com comportamentos comuns, porém de forma mais flexível.
Não determina como nada ser feito, apenas o que deve ser feito.
Interfaces em java
public interface Entregador { public void entrega(); } public class EntregadorDeJornal implements Entregador{public void entrega(){ // vai de bike }} public class EntregadorDePizza implements Entregador{public void entrega(){ // vai de moto}} public class EntregadorDeEncomendas implements Entregador{public void entrega(){ //vai de carro };}public class EntregadorDeMudanca(){public void entrega(){ //vai de caminhão };}
Quando se usa isso?
Herança, Polimorfismo e Abstrações conceitos do paradigma orientado a objetos que o JAVA suporta a sua maneira.
São mais ligados a requisitos não funcionais, ou seja, o tipo de requisito que diz respeito mais a infraestrutura do projeto do que basicamente a sua finalidade e objetivos.
Pode ser usado na construção de APIs.
Curso Java #05 - Herança, Polimorfismo e Classe Abstrata
By Renato Filho
Curso Java #05 - Herança, Polimorfismo e Classe Abstrata
- 1,036