Questão de Programação — Plataforma Java — FUNDATEC 2026
Programação›Plataforma Java
Código
qg685318
Banca
FUNDATEC
Órgão
IFC-SC
Ano
2026
Nível
Superior
Cargo
Professor EBTT - Informática: Programação Básica e Programação Web
Qual é a principal diferença conceitual entre uma interface e uma classe abstrata em Java, considerando suas capacidades e seus propósitos de design?
AInterfaces podem ter construtores, enquanto classes abstratas não.
BClasses abstratas podem implementar múltiplas interfaces, mas interfaces não podem estender múltiplas classes abstratas.
CInterfaces definem um contrato de comportamento sem implementação de estado, enquanto classes abstratas podem ter estado (atributos) e implementações parciais.
DInterfaces podem ter métodos estáticos e privados, mas classes abstratas não.
ENão há diferença significativa, são apenas formas diferentes de alcançar o polimorfismo.
Revelar gabarito e comentário▾
GabaritoC — Interfaces definem um contrato de comportamento sem implementação de estado, enquanto classes abstratas podem ter estado (atributos) e implementações parciais.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Diferença entre Interface e Classe Abstrata em Java
Gabarito: letra C. A principal diferença conceitual é que interfaces definem um contrato de comportamento sem implementação de estado (não possuem atributos de instância), enquanto classes abstratas podem ter estado (atributos) e fornecer implementações parciais de métodos. Essa distinção reflete o propósito de design: interfaces para estabelecer contratos que qualquer classe pode assumir; classes abstratas para compartilhar código e estado entre classes relacionadas.
Critério
Interface
Classe Abstrata
Estado (atributos de instância)
Não possui (apenas constantes public static final)
Pode ter atributos de instância
Implementação de métodos
Apenas métodos abstratos (até Java 7); a partir do Java 8, pode ter métodos default e static
Pode ter métodos abstratos e concretos (implementação parcial)
Construtores
Não pode ter construtores
Pode ter construtores
Herança múltipla
Pode estender múltiplas interfaces
Pode estender apenas uma classe (abstrata ou concreta), mas implementar múltiplas interfaces
Propósito de design
Definir um contrato de comportamento (o que a classe deve fazer)
Compartilhar código e estado entre classes relacionadas (herança)
Alternativa A — ❌ Incorreta
Afirma que interfaces podem ter construtores, e classes abstratas não. Errado: em Java, interfaces não podem ter construtores, enquanto classes abstratas podem (e geralmente têm) construtores para inicializar atributos. A alternativa inverte a regra.
Alternativa B — ❌ Incorreta
Diz que classes abstratas podem implementar múltiplas interfaces, mas interfaces não podem estender múltiplas classes abstratas. A primeira parte é verdadeira, mas a segunda é um erro conceitual: interfaces não estendem classes (nem abstratas nem concretas); elas estendem outras interfaces (herança múltipla de interface). Além disso, a comparação não reflete a diferença principal.
Alternativa C — ✅ Correta ⟵ GABARITO
Declara corretamente que interfaces definem um contrato sem estado (atributos são apenas constantes public static final), enquanto classes abstratas podem ter atributos de instância e métodos concretos, oferecendo implementações parciais. Essa é a essência da distinção no Java.
Alternativa D — ❌ Incorreta
Afirma que interfaces podem ter métodos estáticos e privados, mas classes abstratas não. Errado: a partir do Java 8 e 9, interfaces podem ter métodos estáticos e privados (e privados estáticos). Porém, classes abstratas também podem ter métodos estáticos e privados (inclusive desde sempre). Portanto, não há diferença nesse aspecto; a alternativa é falsa.
Alternativa E — ❌ Incorreta
Diz que não há diferença significativa. Absolutamente errado: a diferença é fundamental na orientação a objetos em Java, tanto em termos de capacidade (estado vs. contrato) quanto de propósito (herança de implementação vs. herança de tipo).
NÃO CAIA NESSA!
Memorize a tabela comparativa: Interfaces: sem estado (apenas constantes), métodos abstratos (e default/static/private), herança múltipla de interface. Classes abstratas: podem ter estado, métodos concretos e abstratos, herança única de classe. A banca adora trocar essas características, como fez nas alternativas A e D.