Escolar Documentos
Profissional Documentos
Cultura Documentos
Java Basico Modulo 07
Java Basico Modulo 07
www.t2ti.com
1
para
acompanhar
um
curso
avanado
onde
poder
aprender
www.t2ti.com
2
Mdulo
07
Orientao a Objetos
Herana, Sobreescrita e
Polimorfismo
Introduo
Em relao ao paradigma Orientado a Objetos ns j vimos o que uma
Classe, aprendemos tambm que um objeto nada mais do que a instanciao de
uma classe e que um dos pilares da Orientao a Objetos o encapsulamento.
Neste mdulo e no prximo ns iremos continuar nossos estudos
relacionados aos conceitos fundamentais da programao Orientada a Objetos. A
seguir estudaremos Herana, Sobreescrita e Polimorfismo.
Herana
No paradigma orientado a objetos podemos definir um conjunto de classes
em uma estrutura hierrquica onde cada uma das classes herda caractersticas da
suas superiores nesta estrutura.
No mundo real temos que uma pessoa herda caractersticas de seus pais
que herdaram de seus avs e assim por diante. Respeitando as limitaes das
linguagens de programao, o que acontece quando utilizamos herana no nosso
cdigo uma tentativa de implementar esta propriedade da natureza.
Para ficar mais claros vamos partir para um exemplo. Imagine que
estivssemos implementando um programa que fosse utilizado em um concessionria
de veculos. Esta concessionria vende carros de passeio, jipes e veculos utilitrios.
Para implementar as classes destes veculos poderamos criar trs classes distintas,
A seguir a classe Jipe:
public class Jipe {
private String marca;
private Double capacidadeTanqueCombustivel;
public Double getTanqueCombustivel()
{
return capacidadeTanqueCombustivel;
www.t2ti.com
3
www.t2ti.com
4
vamos
explorar
um
pouco
mais
nosso
modelo,
nossa
www.t2ti.com
5
www.t2ti.com
6
exemplo
especificamente na
abaixo
mostra
classe Jipe,
como,
apesar
posso acessar
de
no
atravs do
ser
getter
declarado
o atributo
capacidadeTanqueCombustivel:
Jipe jipe = new Jipe();
Double capacidadeTanqueJipe = jipe.getCapacidadeTanqueCombustivel();
jipe.setCapacidadeTanqueCombustivel(48.0);
www.t2ti.com
7
www.t2ti.com
8
Sobreescrita (override)
A sobreescrita de mtodos uma caracterstica que permite alterao do
comportamento de uma superclasse pelas suas subclasses. Ao sobreescrevermos
um mtodo ns estamos fornecendo uma nova implementao para o mesmo
comportamento.
Para exemplificar vamos alterar o comportamento da nossa buzina para que
seja mais adeqada ao um carro de passeio. A classe Veiculo permanece do mesmo
jeito, modificamos apenas a classe CarroPasseio conforme abaixo:
www.t2ti.com
9
CarroPasseio
Bmmmm
Fon fon
www.t2ti.com
10
nunca pode ser mais restritivo do que o do mtodo que est sendo
protected
e aumentarmos a
www.t2ti.com
11
Observe
que
nosso
novo
mtodo
(grifado
em
amarelo)
est
Polimorfismo
O polimorfismo, que significa muitas formas, permite que uma mesma
referncia se comporte de formas diferentes. Utilizando corretamente o polimorfismo
ns podemos fazer o cdigo ficar mais claro, genrico e, portanto, reutilizvel.
Segue abaixo um exemplo:
public class MainModulo09 {
/**
* @param args
*/
public static void main(String[] args) {
Veiculo veiculo = criarVeiculo(args[0]);
veiculo.buzinar();
}
public static Veiculo criarVeiculo(String tipo)
{
if(tipo == null)
{
return new CarroPasseio();
}else if(tipo.equals("utilitario"))
{
return new Utilitario();
}else if(tipo.equals("tanque"))
{
return new TanqueGuerra();
}else if(tipo.equals("passeio"))
{
return new CarroPasseio();
www.t2ti.com
12
www.t2ti.com
13
O
K
www.t2ti.com
14
Agora a classe Jipe pode ser estendida porm qualquer uma de suas
subclasses no poder sobreescrever o mtodo buzinar(). Isto interessante quando
desejamos que determinado comportamento no seja alterado em hiptese nenhuma.
Nos pacotes bsicos da linguagem Java existem diversas classes que so
modificadas pelo final, temos como exemplo a classe String e a classe Math.
www.t2ti.com
15
Classe Object
Para encerrar este mdulo vejamos a classe Object. Em Java todas as
classes, eu disse todas as classes! String, Math, as minhas classes, as suas classes e
etc. estendem a classe Object e portanto so do tipo Object tambm.
Desta forma mesmo quando declaramos uma classe conforme abaixo:
public class Classe {
}
www.t2ti.com
16
Mtodo
Descrio
equals()
toString()
hashCode()
www.t2ti.com
17
EXERCCIOS
Aprenda com quem tambm est aprendendo, veja e compartilhe as suas
respostas no nosso Frum:
Exerccios Mdulo 07 Herana, Sobreescrita e Polimorfismo
1 Crie uma hierarquia de classes conforme abaixo com os seguintes atributos e
comportamentos (observe a tabela), utilize os seus conhecimentos e distribua
as caractersticas de forma que tudo o que for comum a todos os animais fique
na classe Animal:
Cachorro
Cavalo
Preguica
Possui Nome
Possui Nome
Possui Nome
Possui Idade
Possui Idade
Possui Idade
Deve correr
Deve correr
www.t2ti.com
18
www.t2ti.com
19
www.t2ti.com
20