Questão de Programação — Plataforma Java — VUNESP 2026
- Código
- gp003726
- Banca
- VUNESP
- Órgão
- UNESP
- Ano
- 2026
- Cargo
- V - - Analista de Informática I - Área de Atuação: Desenvolvimento de Sistemas - São Paulo
- AClass.
- BJava.
- CMain.
- DVoid.
- EObject.
GabaritoE — Object.
Gabarito: letra E. Em Java, todas as classes — direta ou indiretamente — herdam da classe java.lang.Object, que é a raiz da hierarquia de classes da linguagem. Isso significa que qualquer classe, seja ela definida pelo programador ou parte da API padrão, tem Object como superclasse última, o que garante métodos comuns como toString(), equals() e hashCode().
A hierarquia de classes é um dos pilares da Programação Orientada a Objetos (POO). Quando uma classe herda de outra, ela recebe seus atributos e métodos, podendo estendê-los ou sobrescrevê-los. Em Java, a herança é simples — uma classe só pode ter uma superclasse direta — mas a cadeia pode ser longa. Por exemplo, uma classe Carro pode herdar de Veiculo, que herda de Object. Nessa cadeia, Object é a superclasse de todas, sem exceção.
A classe Object está no pacote java.lang, que é importado automaticamente em todo programa Java. Ela define métodos essenciais que todas as classes herdam, como toString(), equals(), hashCode(), getClass() e clone(). É por isso que qualquer objeto pode ser passado como parâmetro para métodos que aceitam Object — um conceito fundamental para o polimorfismo.
A pegadinha desta questão está em confundir a classe raiz com outros elementos da linguagem. Class é uma classe que representa metadados de classes em tempo de execução (reflexão), mas não é a raiz da hierarquia. Main é apenas um nome comum para o método principal (public static void main), não uma classe especial. Void é um tipo de retorno que indica ausência de valor, e Java não é uma classe da linguagem. A banca explora exatamente essa confusão entre conceitos que parecem relacionados, mas têm papéis distintos.
Guarde o critério decisivo: a raiz da hierarquia é a classe da qual todas as outras derivam, direta ou indiretamente — e essa é Object. É esse critério que separa a alternativa correta das demais.
Class é uma classe do pacote java.lang que representa as classes em tempo de execução, usada em reflexão (por exemplo, Class.forName()). Ela não é a raiz da hierarquia — na verdade, Class também herda de Object. A confusão surge porque o nome parece genérico, mas seu papel é de metadados, não de superclasse universal.
Java não é uma classe da linguagem. É o nome da plataforma e da linguagem de programação, mas não existe uma classe chamada Java na hierarquia padrão. O candidato pode confundir o nome da linguagem com uma classe, mas não há tal entidade no código.
Main não é uma classe especial. É apenas um nome convencional para a classe que contém o método main, ponto de entrada do programa. Qualquer classe pode ter um método main, e nenhuma delas é a raiz da hierarquia. A confusão vem da associação com o método principal, mas isso não a torna uma superclasse.
Void é uma palavra-chave usada como tipo de retorno para métodos que não retornam valor. Também existe a classe java.lang.Void, que é apenas um wrapper para o tipo primitivo void, mas não é a raiz da hierarquia. A confusão surge porque void é um conceito fundamental, mas não tem relação com herança de classes.
A classe java.lang.Object é a raiz da hierarquia de classes em Java. Todas as classes, sem exceção, herdam dela, direta ou indiretamente. Isso é garantido pela especificação da linguagem: se uma classe não declara explicitamente uma superclasse com extends, ela herda de Object implicitamente. É por isso que métodos como toString() e equals() estão disponíveis em qualquer objeto.
Para identificar a raiz da hierarquia, pergunte: "qual classe é superclasse de todas as outras, direta ou indiretamente?" Em Java, a resposta é sempre Object. Decore também os métodos que ela fornece: toString(), equals(), hashCode(), getClass() e clone() — eles aparecem com frequência em provas.
Gabarito: letra E
Link permanente: /questoes/gp003726