Todo mundo sabe que a herança da subclasse das classes dos pais é uma herança do tipo, incluindo atributos e métodos! Se a subclasse e a classe dos pais tiverem a mesma assinatura, é chamada de substituição! Se os atributos da subclasse e da classe pai forem iguais, a classe pai ocultará seus próprios atributos!
Mas se eu usar as referências criadas pela classe pai e pela classe infantil para apontar para o objeto criado pela classe infantil, qual é o resultado do valor ou método da propriedade no objeto de classe infantil chamado?
Veja o código:
public class FieldDemo {public static void main (string [] args) {aluno t = new Student ("Jack"); Pessoa p = t; // a referência criada pela classe pai aponta para o objeto criado pelo Subclass System.out.println (t.name+","+p.name); System.out.println (t.getName ()+","+p.getName ()); }} classe de classe {nome da string; Int Age; public string getName () {return this.name; }} classe Student estende a pessoa {nome da string; // O atributo e o nome do atributo da classe pai são os mesmos, mas não será o mesmo que o nome do atributo da classe pai durante o desenvolvimento! ! public student (nome da string) {this.name = name; super.name = "rose"; // atribui valor aos atributos na classe pai} public string getName () {return this.name; }} O resultado de retorno é:
Jack, Rose
Jack, Jack
A razão é: em Java, os atributos estão vinculados a tipos e métodos estão vinculados a objetos!
O artigo é muito simples, mas também tem certo valor prático. Espero que seja útil para o aprendizado de todos.