wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Programação Orientada a Objetos - Herança

Total questions: 98

Worksheet time: 49mins

Name
Class
Date
1.

O ______ é inerente ao processo de solução de problemas utilizado pelos seres humanos.

a)

Reuso

b)

Erro

c)

Aleatoriedade

d)

Desorganização

2.

Na medida em que soluções são encontradas, estas são utilizadas em problemas similares.

a)

Verdadeiro

b)

Falso

3.

Reutilização de software é o processo de criação de sistemas de software a partir de ______ existente ao invés de construí-los a partir do zero.

a)

software

b)

hardware

c)

documentação

d)

projetos

4.

Para entregar software de qualidade em menos tempo, é preciso reutilizar.

a)

Verdadeiro

b)

Falso

5.

O Reuso veio para agilizar o processo de desenvolvimento de software, aumentando a sua ______ e diminuindo o seu ______.

a)

confiabilidade; custo

b)

complexidade; desempenho

c)

dificuldade; tempo

d)

instabilidade; valor

6.

Reuso é uma das principais vantagens anunciadas pela Orientação a Objetos. Complete: Composição é quando a "____" b (parte essencial).

a)

a é parte essencial de b

b)

a é independente de b

c)

a é opcional para b

d)

a é substituível por b

7.

Reuso é uma das principais vantagens anunciadas pela Orientação a Objetos. Complete: Agregação é quando a "____" b (parte).

a)

a é parte de b

b)

b é parte de a

c)

a e b são independentes

d)

a contém b

8.

Reuso é uma das principais vantagens anunciadas pela Orientação a Objetos. Complete: Associação é quando a "____"

a)

a é usado por b

b)

a herda de b

c)

a implementa b

d)

a depende de b

9.

Reuso é uma das principais vantagens anunciadas pela Orientação a Objetos. Complete: Herança é quando b "____" a (substituição pura) ou b "____" a (substituição útil, extensão).

a)

b é a (substituição pura) ou b é um tipo de a (substituição útil, extensão)

b)

b tem a (substituição pura) ou b faz parte de a (substituição útil, extensão)

c)

b usa a (substituição pura) ou b depende de a (substituição útil, extensão)

d)

b contém a (substituição pura) ou b implementa a (substituição útil, extensão)

10.

O que significa composição em programação orientada a objetos, conforme apresentado na imagem?

a)

Composição é a criação de uma nova classe usando classes existentes como atributos.

b)

Composição é o processo de herdar métodos de uma classe base.

c)

Composição é a definição de métodos estáticos em uma classe.

d)

Composição é a utilização de interfaces para implementar múltiplos comportamentos.

11.

De acordo com o diagrama apresentado, um trem é formado por quais componentes?

a)

A) Apenas locomotiva

b)

B) Apenas vagões

c)

C) Locomotiva e vagões

d)

D) Passageiros

12.

No exemplo de código Java apresentado, qual é o papel da classe Locomotiva dentro da classe Trem?

a)

A classe Locomotiva é usada como um atributo da classe Trem, representando a composição.

b)

A classe Locomotiva herda todos os métodos da classe Trem.

c)

A classe Locomotiva é responsável por criar instâncias da classe Trem.

d)

A classe Locomotiva substitui a classe Trem no código.

13.

O que significa agregação em programação orientada a objetos, conforme explicado na imagem?

a)

Uma classe herda atributos de outra classe

b)

Uma classe usa outra classe como atributo, mas não depende dela para existir

c)

Uma classe não pode existir sem outra classe

d)

Uma classe implementa métodos de outra classe

14.

Qual é o tipo de coleção utilizada para armazenar os objetos Farol?

a)

ArrayList

b)

HashMap

c)

LinkedList

d)

HashSet

15.

O que significa o conceito de associação em programação orientada a objetos?

a)

A) Uma classe herda atributos de outra

b)

B) Uma classe faz uso de outra sem que ela faça parte de sua estrutura

c)

C) Uma classe é composta por outras classes

d)

D) Uma classe não depende de nenhuma outra

16.

No diagrama apresentado, qual é o relacionamento entre as classes Trem e EstradaDeFerro? Preencha o espaço em branco: Trem ______ EstradaDeFerro.

a)

usa

b)

herda de

c)

é parte de

d)

implementa

17.

Reuso - Associação Criação de uma nova classe fazendo uso de outras usando classes (acoplamento menor). Associação: um trem usa uma estrada de ferro (não faz parte do trem, mas ele depende dela). Observe o exemplo de código abaixo: class Trem { EstradaDeFerro estrada = new EstradaDeFerro(); ... } Qual conceito está sendo aplicado neste exemplo?

a)

A) Herança

b)

B) Associação

c)

C) Composição

d)

D) Polimorfismo

18.

Qual técnica de reuso é mais adequada para representar o relacionamento entre as classes Conta e Cliente?

a)

Composição

b)

Herança

c)

Agregação

d)

Polimorfismo

19.

Qual alteração deve ser feita na classe Conta para permitir a associação com múltiplos clientes?

a)

Alterar o atributo de Cliente para uma lista de Clientes.

b)

Remover o atributo Cliente da classe Conta.

c)

Adicionar um método para excluir clientes.

d)

Transformar a classe Conta em uma interface.

20.

O que significa o relacionamento de herança em programação orientada a objetos, conforme mostrado na imagem?

a)

Criação de novas classes sem relação com as existentes

b)

Criação de novas classes estendendo classes existentes

c)

Criação de métodos privados

d)

Criação de variáveis globais

21.

Observe a representação UML detalhada de 'Veículo' na imagem. Quais métodos pertencem à classe 'Veículo'?

a)

getVelocidade(), getPassageiros(), acelera(), freia()

b)

getCor(), setModelo(), ligaRadio()

c)

abrirPorta(), fecharPorta(), buzina()

d)

getAno(), setMarca(), trocarPneu()

22.

O que é herança em programação orientada a objetos?

a)

Um mecanismo que permite a uma classe herdar todos os métodos e os atributos de outra classe.

b)

Um mecanismo que permite a uma classe criar novos métodos.

c)

Um mecanismo que permite a uma classe excluir métodos de outra classe.

d)

Um mecanismo que impede o reuso de código.

23.

Complete: Uma classe que herda de outra classe é chamada de ________ e a classe que fornece a herança é chamada de ________.

a)

subclasse, superclasse

b)

superclasse, subclasse

c)

classe base, classe derivada

d)

classe filha, classe mãe

24.

De acordo com o diagrama apresentado, qual é a superclasse de Classe B?

a)

Classe A

b)

Classe C

c)

Classe D

d)

Classe E

25.

De acordo com o diagrama apresentado, quais são as subclasses de Classe B?

a)

Classe C, Classe D, Classe E

b)

Classe A, Classe F, Classe G

c)

Classe D, Classe F, Classe H

d)

Classe E, Classe G, Classe H

26.

A classe B é uma superclasse de Classe C, Classe D e Classe E.

a)

Verdadeiro

b)

Falso

27.

Complete: As superclasses definem _______ e _______ genéricos que serão herdados pelas classes derivadas.

a)

atributos; métodos

b)

classes; objetos

c)

funções; variáveis

d)

parâmetros; valores

28.

Complete: Um método herdado de uma superclasse pode ser _______ pela classe derivada, mantendo o mesmo nome mas agindo de forma diferente.

a)

redefinido

b)

removido

c)

duplicado

d)

renomeado

29.

Complete: Normalmente, os atributos de um objeto só podem ser consultados ou modificados através dos seus métodos (_______ e _______).

a)

getters; setters

b)

constructors; destructors

c)

listeners; emitters

d)

readers; writers

30.

Na linguagem de programação Java, pode-se definir a visibilidade dos métodos e atributos. Com relação a essa característica, é correto afirmar que:

a)

métodos declarados como public em uma superclasse, quando herdados, precisam ser protected em todas as subclasses dessa classe.

b)

métodos declarados como protected em uma superclasse, quando herdados, precisam ser protected ou public nas subclasses dessa classe.

c)

o nível de acesso protected é mais restritivo do que o nível de acesso default.

d)

métodos declarados como public só podem ser acessados a partir dos métodos da própria classe ou de classes derivadas.

e)

métodos declarados como default só podem ser acessados a partir dos métodos da própria classe.

31.

De acordo com o diagrama apresentado, o que a classe 'Bicicleta' representa em relação à classe 'Veículo' em Java?

a)

Bicicleta é um tipo de Veículo

b)

Veículo é um tipo de Bicicleta

c)

Bicicleta não tem relação com Veículo

d)

Bicicleta herda de Carro

32.

No contexto de herança em Java, complete a frase: 'Bicicleta ______ um Veículo.'

a)

é

b)

tem

c)

faz

d)

usa

33.

Java adota o modelo de árvore para herança de classes. Qual é a classe que está na raiz dessa hierarquia de classes em Java?

a)

String

b)

Object

c)

Integer

d)

Class

34.

Complete: Em Java, a classe _______ é a raiz da hierarquia de classes.

a)

Object

b)

String

c)

System

d)

Class

35.

Qual palavra reservada em Java é usada para indicar herança entre classes?

a)

extends

b)

implements

c)

inherits

d)

super

36.

Em Java, quando uma classe não declara de quem herda, ela estende implicitamente qual classe?

a)

Object

b)

String

c)

System

d)

Class

37.

Os construtores das subclasses em Java herdam automaticamente os construtores das superclasses?

a)

Sim

b)

Não

38.

Para chamar o construtor da superclasse em uma subclasse em Java, qual comando deve ser utilizado?

a)

super()

b)

this()

c)

parent()

d)

base()

39.

Observe o diagrama de herança em Java apresentado. Qual das opções abaixo representa corretamente a relação de herança entre as classes?

a)

A) Circulo herda de Quadrado

b)

B) Quadrado herda de Forma

c)

C) Triangulo herda de Circulo

d)

D) Forma herda de Triangulo

40.

No exemplo de código apresentado: class Circulo extends Forma {...} class Quadrado extends Forma {...} class Triangulo extends Forma {...} Qual palavra-chave é utilizada para indicar herança em Java?

a)

extends

b)

implements

c)

inherits

d)

super

41.

No diagrama, a classe Forma possui os métodos desenha() e apaga().

a)

Verdadeiro

b)

Falso

42.

Como é realizada a chamada de métodos em uma hierarquia de classes em Java?

a)

A) A mensagem é enviada ao objeto e percorre verticalmente uma hierarquia de classe até que uma definição seja encontrada.

b)

B) A mensagem é enviada diretamente à classe principal.

c)

C) O método é chamado apenas na classe filha.

d)

D) O método é chamado apenas no objeto.

43.

Preencha o espaço em branco: Em Java, a definição de método é procurada ________ na hierarquia de classes até ser encontrada.

a)

verticalmente

b)

horizontalmente

c)

diagonalmente

d)

aleatoriamente

44.

O uso de herança em Java aumenta o acoplamento entre as classes, isto é, a dependência de uma classe em relação a outra.

a)

Verdadeiro

b)

Falso

45.

Qual é a relação entre classe 'pai' e 'filha' em Java?

a)

Fraca

b)

Forte

c)

Independente

d)

Inexistente

46.

O forte acoplamento da Herança dificulta a mudança pontual no sistema.

a)

Verdadeiro

b)

Falso

47.

Mesmo depois de reescrever um método da superclasse, a subclasse ainda pode acessar o método da superclasse.

a)

Verdadeiro

b)

Falso

48.

Preencha a lacuna: A sintaxe padrão para acessar um método da superclasse em Java é _________.

a)

super.método()

b)

this.método()

c)

parent.método()

d)

base.método()

49.

Preencha: A palavra reservada ______ é utilizada para fazer referência aos membros (atributos e métodos) da superclasse.

a)

super

b)

this

c)

base

d)

parent

50.

Preencha: O comando ______ é utilizado para chamar construtores da superclasse.

a)

super()

b)

this()

c)

parent()

d)

base()

51.

Por definição, o ______ é chamado (implicitamente) pelo construtor da subclasse. Se houver necessidade de chamá-lo explicitamente, os seus argumentos deverão ser informados.

a)

super()

b)

init()

c)

this()

d)

parent()

52.

Preencha: Toda a chamada a ______ deverá ser feita na primeira instrução do construtor da subclasse.

a)

super()

b)

this()

c)

init()

d)

parent()

53.

Qual é a diferença entre o uso de 'super(raio)' e 'super.apaga()' no contexto da herança em Java?

a)

'super(raio)' chama o construtor da classe pai, enquanto 'super.apaga()' chama um método da classe pai.

b)

Ambos chamam métodos da classe pai.

c)

'super(raio)' chama um método estático da classe pai, enquanto 'super.apaga()' chama o construtor da classe pai.

d)

Ambos chamam o construtor da classe pai.

54.

Preencha o espaço em branco: No exemplo apresentado, 'super(raio)' é utilizado para __________ da classe pai.

a)

chamar o construtor

b)

acessar um atributo privado

c)

finalizar a classe

d)

criar um método estático

55.

1) A classe Carro do sisalucar deve ser modificada para herdar de qual classe, conforme o diagrama UML apresentado, e implementar quais métodos?

a)

Deve herdar de Veículo e implementar getVelocidade(), getPassageiros(), acelera() e freia().

b)

Deve herdar de Passageiro e implementar apenas acelera() e freia().

c)

Deve herdar de Motorista e implementar getVelocidade() e getPassageiros().

d)

Deve herdar de Veículo e implementar apenas acelera().

56.

O que deve ser feito para permitir a locação de motos e ônibus na aplicação sisalucar?

a)

Alterar a aplicação para permitir a locação desses veículos.

b)

Remover a funcionalidade de locação de carros.

c)

Adicionar apenas motos, sem ônibus.

d)

Manter a aplicação sem alterações.

57.

Para criar duas subclasses de Conta, quais nomes devem ser utilizados?

a)

ContaCorrente e ContaPoupanca

b)

ContaSimples e ContaEspecial

c)

ContaDigital e ContaFixa

d)

ContaBasica e ContaPremium

58.

Quais são os atributos da entidade Ent1?

a)

cent11, cent12, aent11, aent12

b)

cent21, cent22, aent21, aent22

c)

cent31, cent32, aent31, aent32

d)

cent41, cent42, aent41, aent42

59.

Quais são os atributos da entidade Ent2?

a)

cent21, aent21, aent22, aent23

b)

cent22, aent24, aent25, aent26

c)

cent23, aent27, aent28, aent29

d)

cent24, aent30, aent31, aent32

60.

Quais são os atributos da entidade Ent3?

a)

cent31, aent31, aent32

b)

cent31, aent33, aent34

c)

cent32, aent31, aent33

d)

cent30, aent30, aent32

61.

Quais são os atributos da entidade Ent4?

a)

cent41, aent41, aent42, aent43

b)

cent42, aent44, aent45, aent46

c)

cent43, aent47, aent48, aent49

d)

cent44, aent50, aent51, aent52

62.

Quais são os atributos da entidade Ent5?

a)

cent51, aent51

b)

cent52, aent52

c)

cent53, aent53

d)

cent54, aent54

63.

O que é Sobrecarga (overloading) em Java?

a)

Quando uma subclasse define um método com o mesmo nome do método herdado da superclasse, mas com assinatura diferente.

b)

Quando uma subclasse define um método com o mesmo nome e mesma assinatura do método herdado da superclasse.

c)

Quando uma subclasse define novos métodos sem relação com os métodos herdados da superclasse.

64.

Complete: Anulação ou Sobreposição (overriding) ocorre quando uma subclasse define um método com o mesmo nome e ______ do método herdado da superclasse.

a)

mesma assinatura

b)

mesmo valor de retorno

c)

mesmo modificador de acesso

d)

mesmo corpo

65.

Métodos constantes (final) podem ser sobrepostos em subclasses.

a)

Verdadeiro

b)

Falso

66.

O que é Extensão em Java?

a)

Quando uma subclasse define um método com o mesmo nome do método herdado da superclasse, mas com assinatura diferente.

b)

Quando uma subclasse define novos métodos, sem qualquer relação com os métodos herdados da superclasse.

c)

Quando uma subclasse define um método com o mesmo nome e mesma assinatura do método herdado da superclasse.

67.

O que é sobrecarga (overloading) em programação orientada a objetos?

a)

É a definição de múltiplos métodos com o mesmo nome, mas com diferentes parâmetros.

b)

É a capacidade de uma classe herdar métodos de outra classe.

c)

É o processo de esconder detalhes de implementação de um objeto.

d)

É a modificação do comportamento de um método herdado.

68.

Verdadeiro ou falso: Uma boa prática é usar a sobrecarga somente nos métodos que possuam a mesma funcionalidade.

a)

Verdadeiro

b)

Falso

69.

Verdadeiro ou falso: A sobrecarga pode ser feita igualmente nos métodos construtores.

a)

Verdadeiro

b)

Falso

70.

Observe o exemplo de código apresentado sobre sobrecarga (overloading): void mover (int dx, int dy) { x += dx; y += dy; } void mover (int raio, float ang) { x += raio*Math.cos(ang); y += raio*Math.sen(ang); } Qual é o conceito ilustrado por esses métodos com o mesmo nome, mas parâmetros diferentes?

a)

Herança

b)

Sobrecarga

c)

Polimorfismo

d)

Encapsulamento

71.

No exemplo apresentado, qual é a diferença entre os métodos 'void mover (int dx, int dy)' e 'void mover (int raio, float ang)'?

a)

A diferença está nos parâmetros: o primeiro recebe dois inteiros (dx, dy) e o segundo recebe um inteiro (raio) e um float (ang).

b)

A diferença está no retorno: o primeiro retorna um valor e o segundo não retorna nada.

c)

A diferença está no nome dos métodos, que são diferentes.

d)

A diferença está na visibilidade dos métodos, um é público e o outro é privado.

72.

Analise o seguinte trecho de código: void doIt(int ...v){ //instruções } void doIt(boolean ...v){ //instruções } É correto afirmar que este é um exemplo de sobrecarga de métodos?

a)

Sim

b)

Não

73.

Com base no exemplo apresentado, o que significa a sobrecarga de construtores?

a)

A) Definir diferentes formas de criar um objeto

b)

B) Criar apenas um tipo de objeto

c)

C) Utilizar apenas variáveis globais

d)

D) Não utilizar construtores na classe

74.

No exemplo mostrado, qual é a posição do objeto p1 após a execução do código?

a)

(0,0)

b)

(1,1)

c)

(2,2)

d)

(3,3)

75.

No exemplo mostrado, qual é a posição do objeto p2 após a execução do código?

a)

(1,2)

b)

(2,1)

c)

(0,0)

d)

(2,2)

76.

O que é o encadeamento de construtor em programação orientada a objetos?

a)

Quando um construtor chama outro construtor usando o comando this().

b)

Quando um método chama outro método.

c)

Quando uma classe herda de outra classe.

d)

Quando um objeto é destruído.

77.

Complete a linha de código do construtor abaixo usando o comando correto: Ponto () { ________; } A resposta está presente no exemplo da imagem.

a)

this(0,0)

b)

super(0,0)

c)

Ponto(0,0)

d)

return(0,0)

78.

DIFERENÇAS this e this()

a)

A palavra reservada this é utilizada para informar que a variável manipulada é um atributo da classe, e não uma simples variável.

b)

A palavra reservada this() é usada para acessar métodos estáticos da classe.

c)

A palavra reservada this() serve para criar uma nova instância da classe.

d)

A palavra reservada this é utilizada apenas em métodos estáticos.

79.

DIFERENÇAS this e this() Preencha:

a)

No exemplo anterior, os atributos x e y de Ponto recebem os valores passados pelas variáveis x e y.

b)

No exemplo anterior, o método this() é usado para acessar métodos estáticos da classe.

c)

No exemplo anterior, o this sempre se refere a métodos privados da classe.

d)

No exemplo anterior, o this() serve para criar variáveis locais temporárias.

80.

DIFERENÇAS this e this() Preencha:

a)

O comando this() é utilizado para chamar construtores.

b)

O comando this() é utilizado para acessar métodos estáticos.

c)

O comando this() é utilizado para declarar variáveis locais.

d)

O comando this() é utilizado para finalizar o programa.

81.

De acordo com a explicação, quando é necessário usar 'this' e 'super' em Java?

a)

Quando for necessário referenciar explicitamente a instância (this)

b)

Quando for necessário referenciar a superclasse (super)

c)

Quando não for necessário usar 'this' ou 'super'

82.

Observe o código abaixo: class Numero { public int x = 10; } class OutroNumero extends Numero { public int x = 20; public int total() { return this.x + super.x; } } Qual será o valor retornado pelo método total()?

a)

30

b)

20

c)

10

d)

40

83.

Verdadeiro ou falso: 'this()' e 'super()' são usados apenas em chamadas de construtores.

a)

Verdadeiro

b)

Falso

84.

O que é anulação (overriding) em programação orientada a objetos?

a)

Quando uma subclasse define um método com a mesma assinatura do método herdado da superclasse

b)

Quando uma classe define um novo método sem relação com a superclasse

c)

Quando um objeto é criado a partir de uma classe

d)

Quando uma classe herda atributos de outra classe

85.

Complete: A mensagem é enviada ao objeto e percorre _______ uma hierarquia de classe até que uma definição seja encontrada.

a)

verticalmente

b)

horizontalmente

c)

diagonalmente

d)

circularmente

86.

No diagrama apresentado, o método é anulado por qual definição?

a)

Pela definição inicial na superclasse

b)

Pela definição na subclasse

c)

Pela definição no objeto

d)

Pela definição na hierarquia mais baixa

87.

Observe o exemplo de código apresentado sobre anulação (overriding): void mover (int dx, int dy) { x += dx; y += dy; } void mover (int dx, int dy) { x += dx - dy; y += dy - dx; } Qual método pertence à SUPERCLASSE?

a)

O primeiro método (x += dx; y += dy;) pertence à SUPERCLASSE.

b)

O segundo método (x += dx - dy; y += dy - dx;) pertence à SUPERCLASSE.

88.

No exemplo de anulação (overriding), qual é a principal diferença entre o método mover da SUPERCLASSE e o da SUBCLASSE?

a)

O método da SUPERCLASSE apenas soma dx e dy às coordenadas, enquanto o da SUBCLASSE subtrai dy de dx e dx de dy.

b)

O método da SUPERCLASSE multiplica dx e dy, enquanto o da SUBCLASSE divide dx por dy.

c)

O método da SUPERCLASSE ignora dx e dy, enquanto o da SUBCLASSE utiliza apenas dx.

d)

O método da SUPERCLASSE apenas imprime as coordenadas, enquanto o da SUBCLASSE altera as coordenadas.

89.

No contexto de anulação (overriding), a SUBCLASSE pode redefinir o comportamento de um método da SUPERCLASSE.

a)

Verdadeiro

b)

Falso

90.

De acordo com o diagrama apresentado, qual das seguintes opções representa um método que pertence apenas à subclasse 'Carro' e não à superclasse 'Veículo'?

a)

getVelocidade()

b)

abastece()

c)

freia()

d)

getPassageiros()

91.

No contexto do diagrama, complete: A classe 'Carro' é uma _______ de 'Veículo'.

a)

subclasse

b)

instância

c)

atributo

d)

método

92.

O que significa a afirmação: "Novos métodos são criados na subclasse" em relação ao diagrama?

a)

Significa que a subclasse pode ter métodos que não existem na superclasse.

b)

Significa que a subclasse não pode ter métodos próprios.

c)

Significa que apenas a superclasse pode criar métodos novos.

d)

Significa que métodos criados na subclasse são automaticamente removidos da superclasse.

93.

Qual é o principal benefício do uso de composição em vez de herança na programação orientada a objetos?

a)

Aumenta a dependência entre as classes

b)

Reduz o acoplamento entre as classes

c)

Permite acesso direto aos atributos privados

d)

Impede o reuso de código

94.

Em Java, qual palavra reservada é utilizada para impedir que uma classe seja herdada?

a)

abstract

b)

static

c)

final

d)

private

95.

O que acontece se uma subclasse em Java tentar acessar um atributo privado da superclasse diretamente?

a)

O atributo é herdado como público

b)

O acesso é negado e ocorre erro de compilação

c)

O atributo é acessado normalmente

d)

O atributo é convertido em protegido

96.

Qual é o principal benefício do uso de composição em vez de herança na programação orientada a objetos?

a)

Elimina a necessidade de métodos

b)

Permite múltiplas heranças

c)

Aumenta a complexidade do código

d)

Reduz o acoplamento entre as classes

97.

Em Java, qual palavra-chave é utilizada para acessar o construtor da superclasse dentro de uma subclasse?

a)

super

b)

base

c)

extends

d)

parent

98.

Complete: O conceito de polimorfismo permite que _______ diferentes sejam tratados de forma uniforme através de uma interface comum.

a)

métodos estáticos

b)

atributos privados

c)

variáveis

d)

objetos