Questão FC373285
Na orientação a objetos uma classe abstrata é construída para ser um modelo para classes derivadas e na sua construção há algumas restrições. Assim, considere a classe abstrata aba
Linguagens de Programação
FCC · 2019
Na orientação a objetos uma classe abstrata é construída para ser um modelo para classes derivadas e na sua construção há algumas restrições. Assim, considere a classe abstrata abaixo, criada na Linguagem Java.
public abstract class Calcula {
private static final double VALOR=10;
public abstract double soma(double n1, double n2);
public abstract void exibeResultado( );
protected abstract double soma(double n1, double n2, double n3);
private abstract int multiplica(double n1, int n2);
private double multiplica(double n1, double n2){return n1*n2;}
public Calcula( ) { }
}
A instrução que NÃO é permitida nessa classe é
- private abstract int multiplica(double n1, int n2);
- public abstract void exibeResultado( );
- public Calcula( ) { }
- private static final double VALOR=10;
- private double multiplica(double n1, double n2){return n1*n2;}
Mostrar resposta e comentário
Gabarito
A
Comentário do professor
A declaração private abstract int multiplica(double n1, int n2); é inválida em Java porque combina dois conceitos incompatíveis.
Um método abstrato não tem implementação e existe para que a subclasse forneça a implementação por meio de sobrescrita. Já o modificador private torna o método inacessível às subclasses.
Como a subclasse não consegue ver um método private, ela não pode sobrescrevê‑lo; portanto não faz sentido declarar um método como abstract e private ao mesmo tempo. O compilador sinaliza esse conflito com erro do tipo "illegal combination of modifiers".
Para que um método abstrato seja implementável, ele deve ter visibilidade que permita a sobrescrita (por exemplo protected, public ou package‑private), e não private.
Conteúdo do catálogo FC Concursos · Atualizado em