E ai rapaz. Tudo bem?!
1 - Que eu me lembre, há três tipos de atributos em Java:
De classe
São criados com o modificador “static” e querem dizer que o atributo será acessado através da classe. Todas as instancias da classe compartilharam o mesmo espaço de memória.
De instância
Quer dizer que cada instancia da classe terá um espaço de memória para este atributo. O atributo não é compartilhado.
De método
São atributos declarados dentro de um método. O espaço de memória é alocado a cada execução do método e destruído após o fim da execução do mesmo.
2 - Quando você declara um atributo com o modificador “final” quer dizer que ele terá seu valor atribuído somente uma vez e não poderá ser alterado. Seria uma constante.
3 - O objeto é alocado no ato de sua criação, ou seja, quando é instanciado. Ex.: new String(); Estamos alocando um espaço na memória para guardar um objeto do tipo String.
4 - O tipo abstrato é uma classe que serve como “modelo” para outras e por esse motivo não pode ser instanciada.
Ex.:
Tenho uma classe Aviao. Todos os aviões tem o método voar. Só que uma Ultraleve, que herda de Aviao, e um 747-400 tem maneiras diferentes de voar, ou seja, o método voar dos dois tem implementações diferentes.
Para tanto, eu crio uma classe abstrata Aviao com um método abstrato voar() que irá OBRIGAR que minha subclasse (Ultraleve ou B747) a implementar este método!
5 - Vamos supor que eu queira cadastrar um Cliente. Eu posso cadastrar só com o Nome, cadastrar com o Nome e Endereço ou com Nome, Endereço e Telefone. Bem visto que eu tenho esses três cenários, ao invés de criar três métodos com nomes como
incluirPessoaNome
incluirPessoaNomeEndereco
incluirPessoaNomeEnderecoTelefone
você poderia usar sobrecarga
incluirPessoa(String nome)
incluirPessoa(String nome, String endereco)
incluirPessoa(String nome, String endereco, String telefone)
Acho que não precisa nem dizer o como é bem mais legível né?!
6 - Bem… não sei se entendi direito essa sua dúvida. Mas em Java, até onde sei, variáveis fazem referência à objetos. Eu posso ter 3 variáveis apontando para o mesmo objeto, por exemplo. Objeto é, digamos, o nome dado à um determinado espaço na memória, onde existem N variáveis apontando.
Espero ter ajudado. Abraço.