← Questões de Engenharia de Software

Engenharia de Software · FGV · 2022

Questão comentada de Engenharia de Software

O sistema de controle automotivo SisAut foi modelado orientado a objetos. O SisAut possui a classe Veículo, que compartilha seu código-fonte com suas subclasses: Carro e Moto. As subclasses Carro e Moto aproveitam os métodos e atributos da classe Veículo. Em orientação a objeto, o mecanismo pelo qual uma classe pode estender outra classe ou ser estendida por outra classe é:

Gabarito: B

Em orientação a objetos, quando uma classe reaproveita atributos e métodos de outra, estamos diante de um caso clássico de herança. É como se a classe “filha” recebesse a base da classe “mãe” e depois pudesse especializar o comportamento sem começar do zero. No enunciado, a classe Veículo é a superclasse, e Carro e Moto aproveitam seu código-fonte, o que é exatamente a ideia de estender uma classe ou ser estendida por ela. A herança permite reutilização de código e organização hierárquica do sistema. Em vez de repetir dados e métodos comuns em Carro e Moto, você centraliza isso em Veículo e deixa as subclasses com suas particularidades. Fica mais limpo, mais fácil de manter e menos sujeito a duplicação, aquele velho inimigo silencioso dos sistemas mal modelados. Por isso o gabarito é a letra B. As demais alternativas tratam de outros conceitos da orientação a objetos: interface serve para definir contrato, agregação para relação entre objetos, encapsulamento para esconder detalhes internos e pacotes para organizar classes, mas nenhuma delas representa o mecanismo de uma classe estender outra. Em doutrina de OO, herança é justamente a relação de generalização/especialização entre classes.

Continue treinando

Questões relacionadas