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