Pergunta Objetiva Sobre Java [Herança]

Pessoal, sou novo aqui e é meu primeiro tópico.
estava vendo umas questões objetivas de java e encontrei esta, que pra mim a resposta n faz sentido alguém poderia me explicar.

O gabarito é ‘B’, mas Object é um classe certo?
pra mim a ‘C’ parece correta por que uma classe pode estender várias só n pode ser estendida de várias correto?
segue a baixo a questão.
vlws…

Sobre herança entre classes em Java, é correto afirmar que:
a) toda classe base de uma hierarquia deve ser abstrata
b) toda classe estende, obrigatoriamente, alguma outra
c) é possível a uma classe estender mais de uma outra, simultaneamente
d) a classe Object é base de todas as demais classes, exceto de Exception

Olá, tudo bem!? :slight_smile:

Dá uma lida neste artigo:

Acho que poderá lhe ajudar a esclarecer sua dúvida.

Foi o melhor que encontrei sobre o assunto. \o/

Abs!

Bom vamos lá

A letra a) esta errada pois nem toda classe base e abstrata como por exemplo a classe Object que a base, a raiz, de todas as classes
A letra c) esta errada pois em Java não e permitido Herança Múltipla, ou seja cada classe so pode herdar de uma única classe
A letra d) esta errada pois a classe exception também herda de Object pois ela e a raiz.

A b) é a correta porque por padrão toda classe Java Herda de Object mesmo que não tendo “extends Object”, pois isso e feito automaticamente pelo compilador, isso só não e feito se a classe herda de alguma outra classe EX: “extends JFrame” sendo assim JFrame herda de awt.Frame q por sua vez herda de awt.Windon … q heda de Object e portanto e um Objeto

 java.lang.Object
    java.awt.Component
        java.awt.Container
            java.awt.Window
                java.awt.Frame
                    javax.swing.JFrame

espero q tenha entendido. Abraços

Acho que o questionamento é com relação a B:

b) toda classe estende, obrigatoriamente, alguma outra

Object é uma classe, de acordo com a alternativa b ela também deveria estender uma outra classe.

As outras alternativas estão realmente erradas.
Essa acho que foi apenas mal formulada.

Uma prova:

Object o = new Object();
System.out.println(o.getClass().getSuperclass()); // imprime null

[quote=AbelBueno]Acho que o questionamento é com relação a B:

b) toda classe estende, obrigatoriamente, alguma outra

Object é uma classe, de acordo com a alternativa b ela também deveria estender uma outra classe.

As outras alternativas estão realmente erradas.
Essa acho que foi apenas mal formulada.

[/quote]

Realmente vc esta certo, ñ tinha visto por esse ângulo “toda classe”, sendo assim o exercício ñ tem nenhuma resposta. :slight_smile: