SóProvas


ID
2779246
Banca
UECE-CEV
Órgão
Funceme
Ano
2018
Provas
Disciplina
Engenharia de Software
Assuntos

Sobre Orientação a Objetos, analise as seguintes afirmações:

I. Uma classe abstrata só possui métodos abstratos.
II. Uma interface não contém métodos implementados.
III. Uma classe abstrata não pode ser instanciada, logo ela não pode ter um construtor.
IV. Uma interface pode ser utilizada como um tipo de dado.

É correto o que se afirma somente em

Alternativas
Comentários
  • O gabarito está incorreto. Classes abstratas podem sim ter construtores.

  • Nas versões mais recentes do Java é possível a uma interface ter métodos com implementação
  • Como o colega disse, o gabarito está incorreto. A alternativa correta deveria ser a A.

     

    II - Interfaces podem sim ter métodos implementados. São os métodos default

    III - Classes abstratas não podem ser instanciadas, mas podem sim ter construtores. 

  • As classes abstratas são as que não permitem realizar qualquer tipo de instância. São classes feitas especialmente para serem modelos para suas classes derivadas. As classes derivadas, via de regra, deverão sobrescrever os métodos para realizar a implementação dos mesmos. As classes derivadas das classes abstratas são conhecidas como classes concretas.

    Como medida de segurança, as classes abstratas somente podem ser estendidas, sendo que a criação de um objeto a partir da mesma é um procedimento evitado. Além disso, caso um ou mais métodos abstratos estejam presentes nessa classe abstrata, a classe filha será, então, forçada a definir tais métodos, pois, caso contrário, a classe filha também se tornará abstrata.

    https://www.devmedia.com.br/conceitos-classes-abstratas-programacao-orientada-a-objetos/18812

  • A questão está correta, com o gabarito correto.

    Explicando as alternativas, para cair novamente nos erros:


    I. Uma classe abstrata só possui métodos abstratos. INCORRETA, classe abstrata pode possuir tanto métodos abstratos quanto métodos concretos.



    II. Uma interface não contém métodos implementados. CORRETA, POIS NÃO FOI MENCIONADO EXPLICITAMENTE JAVA 8, pois somente em java 8 possuímos os métodos default, PORTANTO A ALTERNATIVA ESTÁ CORRETA!



    III. Uma classe abstrata não pode ser instanciada, logo ela não pode ter um construtor. CORRETA, basicamente o raciocinio é o seguinte:

    Classe abstrata possui construtor? NÃO!.

    Classe abstrata possui construtor PADRÃO? SIM. (Pois toda classe possui construtor padrão). Como a questão não especificou o construtor padrão. a alternativa está CORRETA.



    IV. Uma interface pode ser utilizada como um tipo de dado. CORRETA, sem mais comentários.



    GABARITO, ao meu ver, CORRETO, ALTERNATIVA B