curso java #05 - heranca, polimorfismo e classe abstratas

18
PROGRAMAÇÃO ORIENTADA A OBJETOS - PROGRAMAÇÃO ORIENTADA A OBJETOS - JAVA JAVA Prof. Renato Filho SENAC 2014

Upload: renato-sousa

Post on 15-Jul-2015

96 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Curso Java #05 - Heranca, Polimorfismo e Classe abstratas

PROGRAMAÇÃO ORIENTADA A OBJETOS -PROGRAMAÇÃO ORIENTADA A OBJETOS -JAVAJAVA

Prof. Renato Filho SENAC

2014

Page 2: Curso Java #05 - Heranca, Polimorfismo e Classe abstratas

PARADIGMA ORIENTADO A OBJETOSPARADIGMA ORIENTADO A OBJETOS

HerançaPolimorfismo

Page 3: Curso Java #05 - Heranca, Polimorfismo e Classe abstratas

HERANÇAHERANÇAMecanismo 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.

Page 4: Curso Java #05 - Heranca, Polimorfismo e Classe abstratas

PARA QUE USAR HERANÇA?PARA QUE USAR HERANÇA?

Page 5: Curso Java #05 - Heranca, Polimorfismo e Classe abstratas

POR QUE USAR HERANÇA?POR QUE USAR HERANÇA?

Page 6: Curso Java #05 - Heranca, Polimorfismo e Classe abstratas

SINTAXE DA HERANÇASINTAXE DA HERANÇAA 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{

}

Page 7: Curso Java #05 - Heranca, Polimorfismo e Classe abstratas

CLASSES FINAISCLASSES FINAISUma 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 {}

Page 8: Curso Java #05 - Heranca, Polimorfismo e Classe abstratas

CONTROLE DE ACESSOCONTROLE DE ACESSO

Nível deacesso

Mesmaclasse

Classesfilhas

Classes domesmopacote

Classes deoutro 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

Page 9: Curso Java #05 - Heranca, Polimorfismo e Classe abstratas

COMO FUNCIONA A HERANÇA AOCOMO FUNCIONA A HERANÇA AOINSTANCIAR UM OBJETO?INSTANCIAR UM OBJETO?

Ao se instanciar um objeto de uma classe filha todos osconstrutores da classe mais genérica até a mais específica são

chamados.

Page 10: Curso Java #05 - Heranca, Polimorfismo e Classe abstratas

PALAVRA RESERVADA SUPERPALAVRA RESERVADA SUPERA palavra reservada super serve para enfatizar a chamada de

algum método na classe mãe ou superclasse.

Page 11: Curso Java #05 - Heranca, Polimorfismo e Classe abstratas

POLIMORFISMOPOLIMORFISMOAtravés do mecanismo de herança, um determinado objeto podeassumir diferentes formas, o que é chamado de polimorfismo de

classe. Pessoa pessoa;

pessoa = new PessoaFisica();

pessoa.abrirConta();

pessoa = new PessoaJuridica();

pessoa.abrirConta();

Page 12: Curso Java #05 - Heranca, Polimorfismo e Classe abstratas

CLASSES ABSTRATASCLASSES ABSTRATAS"Uma classe abstrata é uma classe que é incompleta, ou éconsiderado incompleta." - Java Specification Language

Uma classe que não possui instâncias diretas.

Page 13: Curso Java #05 - Heranca, Polimorfismo e Classe abstratas

CLASSES ABSTRATAS CLASSES ABSTRATASClasses que possuem métodos abstratos.

Métodos abstratos - são declarados mas não implementados.

Page 14: Curso Java #05 - Heranca, Polimorfismo e Classe abstratas

CLASSES ABSTRATASCLASSES ABSTRATASUma classe só deve ser abstrata quando não se há interesse em

especificar implementações de alguns métodos que pertençam aela.

Ou

Herdar métodos abstratos e não se deseja implementar estesmétodos na subclasse.

Page 15: Curso Java #05 - Heranca, Polimorfismo e Classe abstratas

CLASSES ABSTRATASCLASSES ABSTRATASUsa-se a palavra chave abstract como modificador complementar

na declaração da classe.

public abstract class ClasseAbstrata {}

Page 16: Curso Java #05 - Heranca, Polimorfismo e Classe abstratas

INTERFACESINTERFACESUma interface é uma forma de implementar contratos para

generalizar objetos com comportamentos comuns, porém deforma mais flexível.

Não determina como nada ser feito, apenas o que deve ser feito.

Page 17: Curso Java #05 - Heranca, Polimorfismo e Classe abstratas

INTERFACES EM JAVAINTERFACES EM JAVApublic 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 };

}

Page 18: Curso Java #05 - Heranca, Polimorfismo e Classe abstratas

QUANDO SE USA ISSO?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 derequisito que diz respeito mais a infraestrutura do projeto do que

basicamente a sua finalidade e objetivos.

Pode ser usado na construção de APIs.