Partilhar: WhatsApp
aulify
UC UC00608 · T. Desenv. Software, T. Inform. Gestão

Ficha 02 · Herança, polimorfismo, composição

super(), classes abstractas, composição vs herança
Versão · Aluno
Tempo · 60 minutos
Cotação · 100 pontos
Aluno(a)
Turma
Data
Objectivos da ficha

Parte I · Herança

Exercício 1 · Herdar Pessoa (15 pts)

Cria Pessoa(nome, idade) com método saudar(). Cria Aluno(nome, idade, numero) que herda de Pessoa e adiciona método info() que devolve string com tudo.

Exercício 2 · isinstance (10 pts)

Considera:

class A: pass
class B(A): pass
class C(B): pass

obj = C()

Indica True ou False:

a) isinstance(obj, C) ___

b) isinstance(obj, B) ___

c) isinstance(obj, A) ___

d) isinstance(obj, object) ___

e) type(obj) is C ___

f) type(obj) is A ___

Parte II · Polimorfismo

Exercício 3 · Animais (20 pts)

Cria classe Animal com método som() que retorna "...". Cria 3 subclasses (Cão, Gato, Vaca) que redefinem som(). Escreve função coro(animais) que recebe lista e imprime som de cada.

Exercício 4 · Figuras geométricas (15 pts)

Cria classe abstracta Figura com método abstracto area(). Cria Rectangulo, Circulo, Triangulo. Função area_total(figuras) devolve soma das áreas.

Parte III · Composição

Exercício 5 · Carro (15 pts)

Cria classe Motor(cilindrada) com método ligar(). Cria classe Carro(marca, modelo, cilindrada) que contém um Motor. Carro.arrancar() chama motor.ligar().

Exercício 6 · Herança vs composição (15 pts)

Para cada caso, decide se modelarias com herança ou composição e justifica em 1 frase:

a) Aluno e Pessoa. ___

b) Carro e Motor. ___

c) Lobo e Animal. ___

d) Equipa e Jogador. ___

e) Livro e Editora. ___

f) Quadrado e Rectangulo (matematicamente). ___

Parte IV · Cenário

Exercício 7 · Sistema de empréstimo (10 pts)

Modela uma biblioteca: - ItemBiblioteca (abstracta) com método info() abstracto. - Livro(titulo, autor) herda. - Revista(titulo, edicao) herda. - Biblioteca que tem lista de itens (composição) e métodos adicionar(item), listar().