Curso Java #05 - Heranca, Polimorfismo e Classe abstratas
-
Upload
renato-sousa -
Category
Education
-
view
95 -
download
0
Transcript of Curso Java #05 - Heranca, Polimorfismo e Classe abstratas
PROGRAMAÇÃO ORIENTADA A OBJETOS -PROGRAMAÇÃO ORIENTADA A OBJETOS -JAVAJAVA
Prof. Renato Filho SENAC
2014
PARADIGMA ORIENTADO A OBJETOSPARADIGMA ORIENTADO A OBJETOS
HerançaPolimorfismo
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.
PARA QUE USAR HERANÇA?PARA QUE USAR HERANÇA?
POR QUE USAR HERANÇA?POR QUE USAR HERANÇA?
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{
}
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 {}
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
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.
PALAVRA RESERVADA SUPERPALAVRA RESERVADA SUPERA palavra reservada super serve para enfatizar a chamada de
algum método na classe mãe ou superclasse.
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();
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.
CLASSES ABSTRATAS CLASSES ABSTRATASClasses que possuem métodos abstratos.
Métodos abstratos - são declarados mas não implementados.
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.
CLASSES ABSTRATASCLASSES ABSTRATASUsa-se a palavra chave abstract como modificador complementar
na declaração da classe.
public abstract class ClasseAbstrata {}
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.
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 };
}
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.