SlideShare uma empresa Scribd logo
1 de 34
Herança e Polimorfismo
P. O. O.
Prof. Ângela e Grace
2
Exercício – Classe Caminhão
 Subclasse Caminhao estende Veiculo
– Atributos específicos
 Capacidade
 Número de eixos
– Métodos
 Construtor
 Sets e gets
 Impressão dos dados do caminhão
3
Classe Caminhao
Atributos
específicos
construtor da
super classe
4
Classe Caminhao (cont.)
Atributos herdados
5
Teste – Classe Caminhao
Reescrito na subclasse:
isso é sobrecarga?
6
Relembrando...
 O que é Sobrecarga?
– Recurso que permite que vários métodos sejam
definidos com mesmo nome.
– Obrigatório diferentes parâmetros: quantidade,
tipos ou ordem dos argumentos.
– Define vários métodos semelhantes de acordo
com a necessidade, inclusive construtores.
7
Polimorfismo
 “Propriedade de se apresentar sob muitas
formas”
 Mesmo método chamado (invocado) pode
ter diferentes resultados
 Depende do tipo do objeto que invocou o
método
8
Polimorfismo
 Classe veículo possui método imprime()
 Classes carro/ caminhao herdam método
imprime()
 Redefinição do método (para carro e
caminhao) provoca diferentes resultados
quando o mesmo método é invocado
9
Definição de Polimorfismo
 Princípio pelo várias classes derivadas de uma
mesma superclasse podem invocar métodos que
têm a mesma identificação (assinatura) mas
comportamentos distintos.
 É necessária a redefinição de métodos com mesma
identificação, porém, não deve ser confundido com o
mecanismo de sobrecarga de métodos.
10
Exemplo – Frota de veículos
 Algoritmo
– Solicita quantidade de veículos (n)
– Leitura de n veículos
 Solicita tipo de veiculo
 Solicita dados de acordo com o tipo
 Armazena em vetor de tamanho n
– Imprime dados de n veículos armazenados no
vetor (polimorfismo)
 Qual o tipo do vetor? Veículo? Carro?
Caminhão?
11
Ligação tardia
 Veremos que o método pode ser invocado a partir de
uma referência a um objeto do tipo da superclasse,
apesar de, na prática, ser uma instância da subclasse.
 Neste caso, a decisão sobre qual o método que deve
ser selecionado, de acordo com o tipo da classe
derivada, é tomada em tempo de execução, através
do mecanismo de ligação tardia.
 Ex: Frota de veículos;
12
Classe Frota (parte 1 de 3)
Usa classe Scanner
Início da classe Frota
Declaração
de Variáveis
Tamanho da Frota
Loop para entrada de dados
13
Classe Frota (parte 2 de 3)
Dados comuns a
qualquer veiculo
Dados objeto Carro
14
Classe Frota (parte 3 de 3)
Caminhão
Tipo não identificado: veículo
Polimorfismo
15
Classe Abstrata
 Classes demasiadamente gerais para criar objetos reais.
 Utilizadas somente como superclasses abstratas para
subclasses concretas
 Declara atributos e comportamentos comuns das várias
classes em uma hierarquia.
 Em geral, uma classe abstrata contém um ou mais
métodos abstratos
 Atributos e métodos concretos de uma classe abstrata
estão sujeitos às regras normais da herança.
16
Palavra-chave abstract
 Utilizada para declarar uma classe abstrata.
 Utilizada para declarar um método abstrato:
– Classes abstratas contêm um ou mais métodos abstratos.
– Todas as subclasses concretas devem sobrescrever todos
os métodos abstratos herdados.
 Tentar instanciar um objeto de uma classe abstrata
é um erro de compilação.
17
Formas geométricas
Formas
geométricas
área( )
área = (b x h)/2
área = b x h
área = π x r2
18
Classe Abstrata: Forma Geométrica
 Atributos básicos
– Número de lados
 Métodos
– Set/ get número de lados: métodos não abstratos
– Área: método abstrato
– Imprime(): métodos não abstratos
– Precisa construtor?
19
Classe FormaGeometrica
Atributo protected
Método concreto
20
Classe Circulo
public class Circulo extends FormaGeometrica
{
private double raio; // atributo especifico do circulo
public void setRaio (double raio)
{
if (raio<0) this.raio = 0;
else this.raio = raio;
}
public Circulo (double raio) // construtor
{
setRaio(raio);
}
} Compilou?
21
Classe Circulo com Método Area( )
Usa classe Math
Implementa Area( )
22
Classe TesteFormas
public class TesteFormas
{
public static void main (String args[])
{
FormaGeometrica f = new FormaGeometrica();
f.imprime();
Circulo c = new Circulo(5);
c.imprime();
}
}
Funcionou?
23
Alterações
 Classes abstratas não podem ser
instanciadas.
– Corrigir código do teste
 Como imprimir raio junto ao número de lados?
 Altero em Circulo ou FormaGeometrica?
 Redefinir método imprime( )
24
Classe Circulo - Método imprime( )
sobrescreve imprime( )
25
Mais alterações...
 Como imprimir área da forma geométrica?
 Altero na classe Círculo?
 Ou na FormaGeometrica?
 Redefinir método imprime( ) incluindo
área.
26
Alterando a superclasse
27
Exercício – Subclasse Retangulo
 Atributos básicos
– Base
– Altura
 Métodos
– Sets/ Gets
– Construtor (base, altura)
– area()
– imprime()
28
Classe Retangulo
29
Classe Retangulo (cont.)
30
Teste Formas
31
Interfaces
 São modelos de comportamentos;
 Definem e padronizam serviços que uma classe pode
oferecer;
 Usadas para classes não relacionadas, mas com
alguns comportamentos semelhantes
– Ex.: classes Fatura e Funcionário
 Não são relacionadas
 Ambas podem ter método calculaPagamento
 Usar interface que defina esse comportamento
 Usadas implementar herança múltipla
32
Interface Java
 Descreve conjunto de métodos para instruir
como um objeto deve se comportar
 Possui apenas métodos abstratos, ou seja,
não pode ter nenhum método implementado
 Todos os membros (atributos e métodos)
devem ser public
33
Implementação de interface
 Uma classe concreta pode especificar que
implementa uma ou mais interfaces;
 Todos os métodos devem ser codificados;
 Caso algum método não seja implementado, essa
classe deve ser abstrata;
 Implementar uma interface é como assinar um
contrato!
 Ex: Interfaces gráficas (GUI) => Listener
34
Exercício para entregar
 Classe triângulo
 Classe de teste com as 3 formas

Mais conteúdo relacionado

Semelhante a Herança e Polimorfismo.ppt

Introdução a classes e objetos
Introdução a classes e objetosIntrodução a classes e objetos
Introdução a classes e objetosCícero Quarto
 
Como usar a documentação da API Java 2
Como usar a documentação da API Java 2Como usar a documentação da API Java 2
Como usar a documentação da API Java 2Denis L Presciliano
 
[Curso Java Basico - Orientacao a Objetos] Aula 30: Palavra chave this
[Curso Java Basico - Orientacao a Objetos] Aula 30: Palavra chave this[Curso Java Basico - Orientacao a Objetos] Aula 30: Palavra chave this
[Curso Java Basico - Orientacao a Objetos] Aula 30: Palavra chave thisLoiane Groner
 
[Curso Java Basico - Orientacao a Objetos] Aula 27: Classes e metodos com par...
[Curso Java Basico - Orientacao a Objetos] Aula 27: Classes e metodos com par...[Curso Java Basico - Orientacao a Objetos] Aula 27: Classes e metodos com par...
[Curso Java Basico - Orientacao a Objetos] Aula 27: Classes e metodos com par...Loiane Groner
 
Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)jose-junior89
 
Fundamentos da Programação PHP OO - Aula 2
Fundamentos da Programação PHP OO - Aula 2Fundamentos da Programação PHP OO - Aula 2
Fundamentos da Programação PHP OO - Aula 2Thyago Maia
 
Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++Sérgio Souza Costa
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02Natanael Fonseca
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/Rodrigo Vieira
 
[Curso Java Basico - Orientacao a Objetos] Aula 26: Classes e metodos com ret...
[Curso Java Basico - Orientacao a Objetos] Aula 26: Classes e metodos com ret...[Curso Java Basico - Orientacao a Objetos] Aula 26: Classes e metodos com ret...
[Curso Java Basico - Orientacao a Objetos] Aula 26: Classes e metodos com ret...Loiane Groner
 
Construtores_Sobrecarga.pptx
Construtores_Sobrecarga.pptxConstrutores_Sobrecarga.pptx
Construtores_Sobrecarga.pptxJoberthSilva
 
Intro padroesprojetoadaptertemplateobserver
Intro padroesprojetoadaptertemplateobserverIntro padroesprojetoadaptertemplateobserver
Intro padroesprojetoadaptertemplateobserverEduardo Jorge
 
Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...
Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...
Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...Professor Samuel Ribeiro
 
Aula 4 herança, sobrescrita de métodos, construtor
Aula 4   herança, sobrescrita de métodos, construtorAula 4   herança, sobrescrita de métodos, construtor
Aula 4 herança, sobrescrita de métodos, construtorRafael Pinheiro
 
Aula 03 passagem de parâmetros
Aula 03   passagem de parâmetrosAula 03   passagem de parâmetros
Aula 03 passagem de parâmetrosDanilo Alves
 

Semelhante a Herança e Polimorfismo.ppt (20)

Orientação a Objetos
Orientação a ObjetosOrientação a Objetos
Orientação a Objetos
 
10 heranca
10   heranca10   heranca
10 heranca
 
Introdução a classes e objetos
Introdução a classes e objetosIntrodução a classes e objetos
Introdução a classes e objetos
 
Como usar a documentação da API Java 2
Como usar a documentação da API Java 2Como usar a documentação da API Java 2
Como usar a documentação da API Java 2
 
OOP Java
OOP JavaOOP Java
OOP Java
 
[Curso Java Basico - Orientacao a Objetos] Aula 30: Palavra chave this
[Curso Java Basico - Orientacao a Objetos] Aula 30: Palavra chave this[Curso Java Basico - Orientacao a Objetos] Aula 30: Palavra chave this
[Curso Java Basico - Orientacao a Objetos] Aula 30: Palavra chave this
 
[Curso Java Basico - Orientacao a Objetos] Aula 27: Classes e metodos com par...
[Curso Java Basico - Orientacao a Objetos] Aula 27: Classes e metodos com par...[Curso Java Basico - Orientacao a Objetos] Aula 27: Classes e metodos com par...
[Curso Java Basico - Orientacao a Objetos] Aula 27: Classes e metodos com par...
 
Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)
 
Fundamentos da Programação PHP OO - Aula 2
Fundamentos da Programação PHP OO - Aula 2Fundamentos da Programação PHP OO - Aula 2
Fundamentos da Programação PHP OO - Aula 2
 
Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/
 
Java generics-basics
Java generics-basicsJava generics-basics
Java generics-basics
 
[Curso Java Basico - Orientacao a Objetos] Aula 26: Classes e metodos com ret...
[Curso Java Basico - Orientacao a Objetos] Aula 26: Classes e metodos com ret...[Curso Java Basico - Orientacao a Objetos] Aula 26: Classes e metodos com ret...
[Curso Java Basico - Orientacao a Objetos] Aula 26: Classes e metodos com ret...
 
Tutorial Java: Herança
Tutorial Java: HerançaTutorial Java: Herança
Tutorial Java: Herança
 
Construtores_Sobrecarga.pptx
Construtores_Sobrecarga.pptxConstrutores_Sobrecarga.pptx
Construtores_Sobrecarga.pptx
 
Intro padroesprojetoadaptertemplateobserver
Intro padroesprojetoadaptertemplateobserverIntro padroesprojetoadaptertemplateobserver
Intro padroesprojetoadaptertemplateobserver
 
Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...
Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...
Java básico - Módulo 08 - Introdução à programação orientada à objetos oo - c...
 
Aula 4 herança, sobrescrita de métodos, construtor
Aula 4   herança, sobrescrita de métodos, construtorAula 4   herança, sobrescrita de métodos, construtor
Aula 4 herança, sobrescrita de métodos, construtor
 
Aula 03 passagem de parâmetros
Aula 03   passagem de parâmetrosAula 03   passagem de parâmetros
Aula 03 passagem de parâmetros
 

Mais de JoberthSilva

AULA 1 - Classes e Objetos com codigicação Java.ppt
AULA 1 - Classes e Objetos com codigicação Java.pptAULA 1 - Classes e Objetos com codigicação Java.ppt
AULA 1 - Classes e Objetos com codigicação Java.pptJoberthSilva
 
Curso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CCurso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CJoberthSilva
 
8 - ATIVIDADE DE OPERADORES TERNÁRIOS E IF.pdf
8 - ATIVIDADE DE OPERADORES TERNÁRIOS E IF.pdf8 - ATIVIDADE DE OPERADORES TERNÁRIOS E IF.pdf
8 - ATIVIDADE DE OPERADORES TERNÁRIOS E IF.pdfJoberthSilva
 
A função scanf na programção para dispositivos embarcados
A função scanf na programção para dispositivos embarcadosA função scanf na programção para dispositivos embarcados
A função scanf na programção para dispositivos embarcadosJoberthSilva
 
A CRIAÇÃO DO UNIVERSO.ppt
A CRIAÇÃO DO UNIVERSO.pptA CRIAÇÃO DO UNIVERSO.ppt
A CRIAÇÃO DO UNIVERSO.pptJoberthSilva
 
Apocalipse - Cartas as Igrejas.pptx
Apocalipse - Cartas as Igrejas.pptxApocalipse - Cartas as Igrejas.pptx
Apocalipse - Cartas as Igrejas.pptxJoberthSilva
 
5 - Resistores.ppt
5 - Resistores.ppt5 - Resistores.ppt
5 - Resistores.pptJoberthSilva
 
Problemas de Carater.pptx
Problemas de Carater.pptxProblemas de Carater.pptx
Problemas de Carater.pptxJoberthSilva
 
Mapeamento de Objetos para o Modelo Relacional.ppt
Mapeamento de Objetos para o Modelo Relacional.pptMapeamento de Objetos para o Modelo Relacional.ppt
Mapeamento de Objetos para o Modelo Relacional.pptJoberthSilva
 
Materiais Semicondutores
Materiais SemicondutoresMateriais Semicondutores
Materiais SemicondutoresJoberthSilva
 
Algoritmos - Modificado.ppt
Algoritmos - Modificado.pptAlgoritmos - Modificado.ppt
Algoritmos - Modificado.pptJoberthSilva
 
actividade1-140709100755-phpapp02.pdf
actividade1-140709100755-phpapp02.pdfactividade1-140709100755-phpapp02.pdf
actividade1-140709100755-phpapp02.pdfJoberthSilva
 
Rede sem fio 2.ppt
Rede sem fio 2.pptRede sem fio 2.ppt
Rede sem fio 2.pptJoberthSilva
 

Mais de JoberthSilva (20)

AULA 1 - Classes e Objetos com codigicação Java.ppt
AULA 1 - Classes e Objetos com codigicação Java.pptAULA 1 - Classes e Objetos com codigicação Java.ppt
AULA 1 - Classes e Objetos com codigicação Java.ppt
 
Curso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CCurso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação C
 
8 - ATIVIDADE DE OPERADORES TERNÁRIOS E IF.pdf
8 - ATIVIDADE DE OPERADORES TERNÁRIOS E IF.pdf8 - ATIVIDADE DE OPERADORES TERNÁRIOS E IF.pdf
8 - ATIVIDADE DE OPERADORES TERNÁRIOS E IF.pdf
 
A função scanf na programção para dispositivos embarcados
A função scanf na programção para dispositivos embarcadosA função scanf na programção para dispositivos embarcados
A função scanf na programção para dispositivos embarcados
 
A CRIAÇÃO DO UNIVERSO.ppt
A CRIAÇÃO DO UNIVERSO.pptA CRIAÇÃO DO UNIVERSO.ppt
A CRIAÇÃO DO UNIVERSO.ppt
 
Apocalipse - Cartas as Igrejas.pptx
Apocalipse - Cartas as Igrejas.pptxApocalipse - Cartas as Igrejas.pptx
Apocalipse - Cartas as Igrejas.pptx
 
PHP.ppt
PHP.pptPHP.ppt
PHP.ppt
 
Aula_1.pptx
Aula_1.pptxAula_1.pptx
Aula_1.pptx
 
5 - Resistores.ppt
5 - Resistores.ppt5 - Resistores.ppt
5 - Resistores.ppt
 
Problemas de Carater.pptx
Problemas de Carater.pptxProblemas de Carater.pptx
Problemas de Carater.pptx
 
Mapeamento de Objetos para o Modelo Relacional.ppt
Mapeamento de Objetos para o Modelo Relacional.pptMapeamento de Objetos para o Modelo Relacional.ppt
Mapeamento de Objetos para o Modelo Relacional.ppt
 
capacitores1.ppt
capacitores1.pptcapacitores1.ppt
capacitores1.ppt
 
Materiais Semicondutores
Materiais SemicondutoresMateriais Semicondutores
Materiais Semicondutores
 
Algoritmos - Modificado.ppt
Algoritmos - Modificado.pptAlgoritmos - Modificado.ppt
Algoritmos - Modificado.ppt
 
Fibra Óptica
Fibra ÓpticaFibra Óptica
Fibra Óptica
 
actividade1-140709100755-phpapp02.pdf
actividade1-140709100755-phpapp02.pdfactividade1-140709100755-phpapp02.pdf
actividade1-140709100755-phpapp02.pdf
 
50524(1).ppt
50524(1).ppt50524(1).ppt
50524(1).ppt
 
Rede sem fio 2.ppt
Rede sem fio 2.pptRede sem fio 2.ppt
Rede sem fio 2.ppt
 
bom-1.pdf
bom-1.pdfbom-1.pdf
bom-1.pdf
 
PHP.ppt
PHP.pptPHP.ppt
PHP.ppt
 

Herança e Polimorfismo.ppt

  • 1. Herança e Polimorfismo P. O. O. Prof. Ângela e Grace
  • 2. 2 Exercício – Classe Caminhão  Subclasse Caminhao estende Veiculo – Atributos específicos  Capacidade  Número de eixos – Métodos  Construtor  Sets e gets  Impressão dos dados do caminhão
  • 5. 5 Teste – Classe Caminhao Reescrito na subclasse: isso é sobrecarga?
  • 6. 6 Relembrando...  O que é Sobrecarga? – Recurso que permite que vários métodos sejam definidos com mesmo nome. – Obrigatório diferentes parâmetros: quantidade, tipos ou ordem dos argumentos. – Define vários métodos semelhantes de acordo com a necessidade, inclusive construtores.
  • 7. 7 Polimorfismo  “Propriedade de se apresentar sob muitas formas”  Mesmo método chamado (invocado) pode ter diferentes resultados  Depende do tipo do objeto que invocou o método
  • 8. 8 Polimorfismo  Classe veículo possui método imprime()  Classes carro/ caminhao herdam método imprime()  Redefinição do método (para carro e caminhao) provoca diferentes resultados quando o mesmo método é invocado
  • 9. 9 Definição de Polimorfismo  Princípio pelo várias classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma identificação (assinatura) mas comportamentos distintos.  É necessária a redefinição de métodos com mesma identificação, porém, não deve ser confundido com o mecanismo de sobrecarga de métodos.
  • 10. 10 Exemplo – Frota de veículos  Algoritmo – Solicita quantidade de veículos (n) – Leitura de n veículos  Solicita tipo de veiculo  Solicita dados de acordo com o tipo  Armazena em vetor de tamanho n – Imprime dados de n veículos armazenados no vetor (polimorfismo)  Qual o tipo do vetor? Veículo? Carro? Caminhão?
  • 11. 11 Ligação tardia  Veremos que o método pode ser invocado a partir de uma referência a um objeto do tipo da superclasse, apesar de, na prática, ser uma instância da subclasse.  Neste caso, a decisão sobre qual o método que deve ser selecionado, de acordo com o tipo da classe derivada, é tomada em tempo de execução, através do mecanismo de ligação tardia.  Ex: Frota de veículos;
  • 12. 12 Classe Frota (parte 1 de 3) Usa classe Scanner Início da classe Frota Declaração de Variáveis Tamanho da Frota Loop para entrada de dados
  • 13. 13 Classe Frota (parte 2 de 3) Dados comuns a qualquer veiculo Dados objeto Carro
  • 14. 14 Classe Frota (parte 3 de 3) Caminhão Tipo não identificado: veículo Polimorfismo
  • 15. 15 Classe Abstrata  Classes demasiadamente gerais para criar objetos reais.  Utilizadas somente como superclasses abstratas para subclasses concretas  Declara atributos e comportamentos comuns das várias classes em uma hierarquia.  Em geral, uma classe abstrata contém um ou mais métodos abstratos  Atributos e métodos concretos de uma classe abstrata estão sujeitos às regras normais da herança.
  • 16. 16 Palavra-chave abstract  Utilizada para declarar uma classe abstrata.  Utilizada para declarar um método abstrato: – Classes abstratas contêm um ou mais métodos abstratos. – Todas as subclasses concretas devem sobrescrever todos os métodos abstratos herdados.  Tentar instanciar um objeto de uma classe abstrata é um erro de compilação.
  • 17. 17 Formas geométricas Formas geométricas área( ) área = (b x h)/2 área = b x h área = π x r2
  • 18. 18 Classe Abstrata: Forma Geométrica  Atributos básicos – Número de lados  Métodos – Set/ get número de lados: métodos não abstratos – Área: método abstrato – Imprime(): métodos não abstratos – Precisa construtor?
  • 20. 20 Classe Circulo public class Circulo extends FormaGeometrica { private double raio; // atributo especifico do circulo public void setRaio (double raio) { if (raio<0) this.raio = 0; else this.raio = raio; } public Circulo (double raio) // construtor { setRaio(raio); } } Compilou?
  • 21. 21 Classe Circulo com Método Area( ) Usa classe Math Implementa Area( )
  • 22. 22 Classe TesteFormas public class TesteFormas { public static void main (String args[]) { FormaGeometrica f = new FormaGeometrica(); f.imprime(); Circulo c = new Circulo(5); c.imprime(); } } Funcionou?
  • 23. 23 Alterações  Classes abstratas não podem ser instanciadas. – Corrigir código do teste  Como imprimir raio junto ao número de lados?  Altero em Circulo ou FormaGeometrica?  Redefinir método imprime( )
  • 24. 24 Classe Circulo - Método imprime( ) sobrescreve imprime( )
  • 25. 25 Mais alterações...  Como imprimir área da forma geométrica?  Altero na classe Círculo?  Ou na FormaGeometrica?  Redefinir método imprime( ) incluindo área.
  • 27. 27 Exercício – Subclasse Retangulo  Atributos básicos – Base – Altura  Métodos – Sets/ Gets – Construtor (base, altura) – area() – imprime()
  • 31. 31 Interfaces  São modelos de comportamentos;  Definem e padronizam serviços que uma classe pode oferecer;  Usadas para classes não relacionadas, mas com alguns comportamentos semelhantes – Ex.: classes Fatura e Funcionário  Não são relacionadas  Ambas podem ter método calculaPagamento  Usar interface que defina esse comportamento  Usadas implementar herança múltipla
  • 32. 32 Interface Java  Descreve conjunto de métodos para instruir como um objeto deve se comportar  Possui apenas métodos abstratos, ou seja, não pode ter nenhum método implementado  Todos os membros (atributos e métodos) devem ser public
  • 33. 33 Implementação de interface  Uma classe concreta pode especificar que implementa uma ou mais interfaces;  Todos os métodos devem ser codificados;  Caso algum método não seja implementado, essa classe deve ser abstrata;  Implementar uma interface é como assinar um contrato!  Ex: Interfaces gráficas (GUI) => Listener
  • 34. 34 Exercício para entregar  Classe triângulo  Classe de teste com as 3 formas