Prefácio
Java é uma linguagem orientada a objetos. Todo mundo que aprendeu que Java sabe que o encapsulamento, a herança e o polimorfismo são as três características da orientação de objetos. Quando todos acabaram de aprender a herança, eles teriam mais ou menos a impressão de que a herança pode me ajudar a reutilizar a reutilização da classe. Portanto, muitos desenvolvedores usarão naturalmente a herança de classe quando precisam reutilizar algum código, porque é isso que o livro está escrito (é isso que o professor ensina). No entanto, é realmente errado fazer isso. O uso de herança em larga escala de longo prazo trará altos custos de manutenção ao código.
Na verdade, quando aprendi Java, nunca ouvi falar do termo combinação, e o professor nunca o explicou. Eu sempre pensei que tinha perdido alguns pontos de conhecimento, mas não era. O termo combinação deve ser definido como uma coisa de pensar por enquanto. Acredito que os leitores entraram em contato com ele, mas não sei se ele tem esse nome.
De fato, a chamada combinação é criar uma nova classe para chamar uma classe que foi criada e depurada, para que essa nova classe possa ser chamada de combinação
Por exemplo, eu crio um povo
public class People {private String Name; private Int Age; public void setName (nome da string) {this.name = name; } public string getName () {return this.name; } public int getage () {return this.age; } public void setage (int Age) {this.age = Age; }} Então eu quero usar esta classe agora. Eu posso adicionar alguns novos recursos a esta classe. Neste momento, podemos criar uma nova classe e, em seguida, criar o objeto das pessoas nesta classe.
Por exemplo, agora estou criando uma aula chamada aluno
Classe Student {People People = New People ();} Em seguida, você pode adicionar alguns atributos a esta classe, como definir uma identidade como aluno, que não discutirei aqui.
Em seguida, vamos dar uma olhada na herança. De fato, herança e combinação são semelhantes. Vamos primeiro olhar como é herdado.
Há uma palavra -chave chamada Extends em Java, que pode nos ajudar a herdar. Chamamos a classe de classe herdada, classe base, super classe e herdeiros estão tudo bem, e chamamos a subclasse ou aula derivada ou aula derivada etc.
Aqui definimos uma aula
A classe pública Student estende as pessoas {// doSomething} Dessa forma, a classe herda todos os métodos de membros e variáveis de membros da classe pai, mas observe que campos ou métodos declarados como permissão privada não serão herdados.
Para provar isso, escrevemos um método na aula de estudante
public string re () {return this.name;}Aqui, o compilador relatará um erro "People.name não é visível". A partir daqui, podemos ver que os campos ou métodos declarados como privados não podem ser herdados. Se você deseja herdá -lo, pode alterar privado para protegido. Dessa forma, podemos herdar o campo de nome sem problemas.
Dessa forma, inicializamos todos os campos nas pessoas, basta adicionar este bloco de código ao código.
{this.age = 10; this.name = "zhangsan";}Em seguida, declare este aluno na função principal
Estudante estudante = novo aluno (); system.out.println (student.getage ());
Agora ficamos surpresos ao descobrir que este método de escrita é viável. Embora não tenhamos declarado nenhum campo e métodos na subclasse, ainda podemos chamar getage (); E podemos imprimir 10 suavemente
Isso ocorre porque não sobrecarregamos nenhum método na subclasse, por isso chamamos o Getage da classe pai, para que possamos acessar facilmente os campos declarados pela classe pai privada.
Depois de ler isso, acredito que todos têm uma compreensão preliminar da herança. Então, no mecanismo de herança, como os métodos de construção de cada classe são chamados? A resposta é chamá -los em sequência da classe pai para a classe infantil.
Ao demonstrar, declaro primeiro três classes temp1, temp2 e temp3. Ao mesmo tempo, o TEMP3 herda do temp2 e o temp2 herda do temp1. Dessa forma, colocamos uma declaração impressa nos métodos de construção de cada classe.
//Temp1system.out.println("i'm temp1 "); // temp2system.out.println (" I'm temp2 "); // temp3system.out.println (" I'm Temp3 "); Por uma questão de conveniência, escrevi isso aqui, mas todos devem prestar atenção ao fato de que estes são colocados nos métodos de construção de cada categoria.
Criamos um objeto TEMP3 na função principal
public class mian {public static void main (string [] args) {temp3 temp3 = new temp3 (); }}Nós olhamos para o console e o imprimimos
Eu sou temp1i'm temp2i'm temp3
A partir disso, podemos ver que precisamos criar o objeto do TEMP3 primeiro, encontrar a palavra -chave Extends, depois seguir a cadeia de herança, encontrar Temp2 e encontrar a palavra -chave Extends e encontrar o temp1, depois chamar o construtor do Temp1 e depois chamar um por um.
Resumir
O acima é o conteúdo inteiro deste artigo. Espero que o conteúdo deste artigo seja de ajuda para o seu estudo ou trabalho. Se você tiver alguma dúvida, pode deixar uma mensagem para se comunicar.