Você está na página 1de 3

UNIBRATEC

TI Programao Orientada a Objetos


Crystian Leo
Baseado no material da professora Karina Oliveira
Sexta Lista de Exerccios Herana, Polimorfismo, Classe Abstrata e Sobreposio de Mtodos
1) Herana, polimorfismo e classe abstrata: Implementar as seguintes classes e seus respectivos
atributos:
a) Animal: nome (string). A classe animal tem o mtodo abstrato void talk( ) que deve imprimir a
fala do animal.
b) Cachorro: raa (string), lateMuito (booleano).
c) Arara: cor (string), regiaoOrigem (string).
d) Classe de testes: TesteAnimal que define duas variveis do tipo Animal e armazena em cada
uma delas um objeto do tipo Cachorro e outro do tipo Arara. Imprimir aps a criao dos objetos
os valores armazenados em cada um dos atributos do objeto Cachorro e do objeto Arara.
2) Herana, polimorfismo e classe abstrata: Alterar o modelo da questo 1 para:
a) Acrescentar as classes Mamifero e Ave que herdam de Animal.
b) A classe Cachorro passa a herdar de Mamifero.
c) A classe Arara passa a herdar de Ave.
d) Acrescentar a classe Gato que herda de Mamifero.
e) Acrescentar a classe Papagaio que herda de Ave.
f) Classe de testes: TesteAnimal2 que define quatro variveis do tipo Animal e armazena em cada
uma delas um objeto do tipo Cachorro, Arara, Gato e Papagaio. Imprimir aps a criao dos
objetos os valores armazenados em cada um dos atributos dos objetos.
3) Herana, polimorfismo e sobreposio de mtodos: Implementar as seguintes classes e seus
respectivos atributos:
a) Classe Carro: nome (string), fabricante (string), velocidade mxima (ponto-flutuante). O atributo
velocidade mxima s pode aceitar valores de 0 a 200 km/h.
b) Classe CarroCorrida que herda da classe Carro. Um carro de corrida pode ter como velocidade
mxima valores de 0 a 400 km/h.
c) Classes de testes: TesteCarro que define duas variveis do tipo Carro e armazena em cada uma
delas um objeto do tipo Carro e outro objeto do tipo CarroCorrida.
OBS: Para todas as classes de dados acima deve-se usar a tcnica de encapsulamento apresentada no
curso, implementar mtodos get e set para todos os atributos e implementar dois construtores: um
default e outro recebendo valores para todos os atributos.

4) Herana, polimorfismo e classe abstrata: Leia com ateno o cdigo das classes abaixo.
a) Antes de tentar compil-las identifique o erro de compilao que dever ocorrer. Compile-as e
verifique se a sua previso estava correta.


!"#$%& &$'(( "#$%&'()**%+ ,
!)%*'+, %-+ -)&+.

!"#$%& "#$%&'()**%+/0 ,
"1*2%34!"#4$&562(6/786*2)695)6:; ) *#$%&9()**%470.
<

!"#$%& "#$%&'()**%+/%-+ -0 ,
-)&+ = -.
"1*2%34!"#4$&562(6/786*2)695)6:; ) *#$%&9()**%470.
<

!"#$%& %-+ >%2?)&+/0 ,
),+")- -)&+.
<

!"#$%& *.%/ *%2?)&+/%-+ -0 ,
-)&+ = -.
<
<

@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!"#$%& &$'(( "#A'()**%+ ,0+,-/( "#$%&'()**%+ ,
!)%*'+, %-+ -)&B.

!"#$%& "#A'()**%+/0 ,
"1*2%34!"#4$&562(6/786*2)695)6:; ) *#A9()**%470.
<

!"#$%& "#A'()**%+/%-+ -+C %-+ -B0 ,
-)&+ = -+.
-)&B = -B.
"1*2%34!"#4$&562(6/786*2)695)6:; ) *#A9()**%470.
<

!"#$%& %-+ >%2?)&B/0 ,
),+")- -)&B.
<

!"#$%& *.%/ *%2?)&B/%-+ -0 ,
-)&B = -.
<
<

b) Faa a alterao necessria na classe SubClasse1 de forma que a mesma possa ser compilada.
c) Agora leia com ateno o cdigo da classe TestandoClasses a seguir. Antes de compil-lo
procure prever os erros de compilao que iro ocorrer. Em seguida compile-o e verifique se as
suas previses estavam corretas.
d) Faa as modificaes necessrias ao cdigo de TestandoClasses para que possa ser compilado e
o programa executado.


!"#$%& &$'(( D%*2)6:;'()**%* ,
!"#$%& (+'+%& *.%/ 3)56/"2&56>EF )&>-0 ,
"#$%&'()**%+ *$ = -,1 "#$%&'()**%+/0.
*$4-)&+ = +G.
"1*2%34!"#4$&562(6/7H -)&5)-%( :% 56*2)695) -)&+ :) 56*2)695) *$
:% "#$%&'()**%+ -)(%I 7 J *$4-)&+0.
"#A'()**%+ *A = -,1 "#A'()**%+/+GC BG0.
"1*2%34!"#4$&562(6/7H -)&5)-%( :% 56*2)695) -)&+ :) 56*2)695) *A
:% "#A'()**%+ -)(%I 7 J *A4-)&+ J 7 % ) -)&5)-%( -)&B :%*2) 56*2)695) -)(%I
7 J *A4-)&B0.
<
<

Você também pode gostar