Sie sind auf Seite 1von 15

POO - Aula 11

Crystian Leo Crystian Leo


Fonte: Material da Prof. Karina K. C.
Oliveira
Classes Abstratas
Classes Abstratas
Onde aplicar:
Em alguns casos, uma superclasse
torna-se to geral que acaba sendo
vista como um modelo para outras
classes e no como uma classe com
instncias especcas que so usadas.
No representam um tipo concreto no
sistema sendo modelado.
Caractersticas
No podem ser instanciadas ! new proibido.
Pode-se declarar um atributo, varivel ou
parmetro de mtodo cujo tipo uma classe
abstrata.
Podem ter mtodos abstratos: mtodos sem
implementao (apenas a assinatura terminada
por ponto-e-vrgula).
A palavra reservada abstract utilizada para
expressar este conceito
Classes abstratas
Exemplo
public abstract class ClasseAbstrata {
public abstract void metodo();
}
Construindo Objetos
Pode-se construir objetos a partir de
classes concretas que estendem a
classe abstrata, nas quais os mtodos
que foram declarados como abstratos
receberam uma implementao.
Classes abstratas
Exemplo
public class ClasseConcreta extends ClasseAbstrata {
public void metodo( ) {
System.out.println("Isto Funciona!");
}
}
public class Aplicacao {
public static void main(String[ ] args) {
ClasseAbstrata c1 = new ClasseConcreta();
c1.metodo();
}
}
Classes abstratas
Exerccio 1
Exerccio 1 -
Consideraes
A classe Funcionario abstrata.
O mtodo aumentaSalario() da classe
Funcionrio abstrato.
As classes Gerente e Programador so
concretas.
Uma chamada ao aumentaSalario() do
Gerente aumenta seu salrio em 10%.
Uma chamada ao aumentaSalario() do
Programador aumenta seu salrio em 20%.
Exerccio 1 - Aplicao
Implemente uma aplicao que declara duas
variveis do tipo Funcionario e cria dois objetos
um do tipo Gerente e outro do tipo Programador.
Em seguida, o programa deve oferecer um menu
para o usurio com as seguintes opes:
Imprimir dados O usurio dever informar se
ele deseja imprimir os dados do Gerente ou do
Programador.
Aumentar salrio O usurio dever informar
se ele deseja aumentar o salrio do Gerente ou
do Programador.
Classes abstratas
Exerccio 2
Suponha que queiramos criar
diversas classes de carter
geomtrico, tais como Triangulo,
Quadrado, Circulo, etc. Observe que
todas elas devero ter mtodos de
clculo de suas respectivas reas e
comprimentos.
Exerccio 2 - Soluo
Neste caso podemos criar uma classe
denominada FormaGeometrica, da qual
todas as outras herdariam e, dentro
desta classe, especicamos os mtodos
que as subclasses possuem em comum
(rea e comprimento).
Iremos fazer isto usando classe e
mtodos abstratos!
Exerccio 2 - Soluo
FormaGeometrica:
Classes abstratas
Exerccio 3:
Transformar a classe InfoCliente do
exerccio de Clientes da aula de
herana em uma classe abstrata.
Classes abstratas
Exerccio 4: Implementar,usandoclasse
abstrata, o seguinte modelo de classes.

Das könnte Ihnen auch gefallen