SóProvas


ID
748066
Banca
CESGRANRIO
Órgão
Petrobras
Ano
2012
Provas
Disciplina
Programação
Assuntos

Suponha que as classes Circulo, Desenho e Figura ocupem arquivos separados.

Em qual código Java elas serão compiladas sem erros?

Alternativas
Comentários
  • Nas letras D e E, veja que a questão diz: "Suponha que as classes Circulo, Desenho e Figura ocupem arquivos separados." então de cara já podemos elimina-las.

    Nas letras A e B a variável PI é final com valor 0, e a classe círculo (filha) de ambas as letras está alterando o valor da variável para 3.14, isso gera erro em tempo de compilação.

    A única que não apresenta erros é a letra C.

  • E tem mais...

    Na Letra A a classe Figura tem um método abstrato sem a própria classe ser abstrata.

    Na Letra B a classe Circulo sobrescreve o método dist reduzindo a sua visibilidade de protected para private.

    Na Letra D a classe Circ implementa a iterface ICirculo sem implementar o método centroY.

    Na Letra E a assinatura da classe Circ apresenta o comando extends em vez de implements já que ICirculo é uma interface.
  • A letra C não está completamente correta, pois ela está adicionando um objeto f.add(p) em uma lista que não foi instanciada. Não há o new List<Figura>();
  • Na letra C... pode isso? na classe abstrata o método dist é protected, na classe concreta circulo o método dist é implementado como public... Reduzir a visibilidade n pode mas aumentar pode?
  • O construtor da classe círculo está utilizando a variável d que não foi instanciada, ou seja, da erro de compilação.
  • Letra (A), erro: O construtor de Circulo está atribuindo valor a um atributo final (PI), atributo final só pode ser atribuído uma única vez, no caso ele está inicializando com o valor 0 (zero) na sua declaração;

    Letra (B), erro: Atributol final, PI, novamente sendo atribuído no construtor de Circulo;

    Lerta (C), correta;

    Letra (D) erro: A classe Circ não está implementando o método centroY exigido na interface ICirculo.

    Letra (E) erro: A classe Cir está extendendo (extends) a interface ICirculo ao invés de implementar (implements).