Considerando o trecho de programa Java mostrado acima, julgu...

Próximas questões
Com base no mesmo assunto
Q268143 Programação
class Bicycle {
int cadence = 0;
int speed = 0;
int gear = 1;
void changeCadence(int newValue) {
cadence = newValue;
}
void changeGear(int newValue) {
gear = newValue;
}
void speedUp(int increment) {
speed = speed + increment;
}
void applyBrakes(int decrement) {
speed = speed - decrement;
}
void printStates() {
System.out.println(“cadence:“+cadence+”speed:
“+speed+”gear:“+gear);
}
}
class BicycleDemo {
public static void main(String[] args) {
Bicycle bike1 = new Bicycle();
Bicycle bike2 = new Bicycle();
bike1.changeCadence(50);
bike1.speedUp(10);
bike1.changeGear(2);
bike1.printStates();
bike2.changeCadence(50);
bike2.speedUp(10);
bike2.changeGear(2);
bike2.changeCadence(40);
bike2.speedUp(10);
bike2.changeGear(3);
bike2.printStates();v }
}
Considerando o trecho de programa Java mostrado acima, julgue o item seguinte.

De acordo com o trecho de programa em questão, o mecanismo de herança foi bloqueado pela redefinição de atributos na subclasse criada.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: E - errado

A questão apresenta um trecho de código Java onde são definidas duas classes: Bicycle e BicycleDemo. A classe Bicycle contém atributos e métodos relacionados ao estado e ao comportamento de uma bicicleta. Já a classe BicycleDemo contém um método main, que serve como ponto de entrada do programa e é responsável por criar e manipular objetos da classe Bicycle.

A questão aborda o conceito de herança, que é um princípio fundamental na programação orientada a objetos. A herança permite que uma classe herde atributos e métodos de outra classe, chamada de classe pai ou superclasse. No entanto, a afirmação de que o mecanismo de herança foi bloqueado pela redefinição de atributos na subclasse criada é incorreta, pois o código apresentado não mostra nenhuma subclasse, ou seja, não há herança envolvida no trecho de código fornecido.

Além disso, para bloquear a herança em Java, utilizaríamos a palavra-chave final ao definir a classe, o que impede que outras classes herdem dela. Neste caso, nenhum dos atributos ou classes está definido como final. A questão pode ter tentado abordar o conceito de redefinição (ou override), mas isso também não é aplicável aqui, uma vez que não há métodos sendo redefinidos em uma subclasse herdada.

Portanto, a afirmação de que o mecanismo de herança foi bloqueado é errada, pois a herança não é aplicada no trecho de código em questão, e não há indícios de bloqueio de herança através de redefinição de atributos em uma subclasse que não existe. Logo, a alternativa correta é E - errado.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo