1
resposta

Herança é equivalente a um ponteiro?

Recentemente fiz o curso de C, e foi bem abordado o uso de ponteiros. E estou achando tudo muito similar, claro que cada um da sua maneira de utilizar. Mas a questão é, a herança do java pode ser comparada com os ponteiros da linguagem C, ou estou equivocado ?

1 resposta

Olá, André!

A alocação de objetos em memória tem uma forte relação com ponteiros, então existe sim uma relação "por de baixo dos panos", mas eu não colocaria ela diretamente relacionada apenas a herança em si, mas sim à utilização de objetos como variáveis em geral. Quando você cria uma variável que não seja de um tipo primitivo (int, char, byte, double, etc), ou seja, um objeto, está criando um ponteiro para uma posição da memória Heap que contém os dados relativos a ela. Se quiser saber mais afundo como funciona a alocação de memória em java, pode pesquisar por Java (JVM) Memory Model (ou JMM) e vai encontrar bastante informação sobre Heap e Stack e a relação que existe com ponteiros, entre outras.

De forma muito resumida, a Heap é a parte da memória que contém o estado dos objetos e arrays criados e é criada no início da aplicação. A Stack funciona como uma pilha (parecida com aquela do C mesmo) e contém variáveis locais e resultados parciais de uma thread. Aqui na documentação oficial você encontra mais informações: https://docs.oracle.com/javase/specs/jvms/se17/html/jvms-2.html#jvms-2.5.2.