Tipos de herança em Java | Explicado

Tipos de herança em Java | Explicado
Um dos principais conceitos de programação Java orientada a objetos é Herança que permite que uma classe adquira os atributos da classe e as funções de membros das outras classes usando uma palavra -chave estende -se. Em Java, existem vários tipos de herança, como único, multinível e hierárquico que podem ser usados ​​com base em diferentes circunstâncias. Ao contrário de outras linguagens de programação, como C ++, Java não suporta o conceito de herança múltipla para evitar a ambiguidade.

Este artigo fornece uma visão geral detalhada dos seguintes conceitos sobre os tipos de herança em Java:

  • Herança única em java
  • Herança hierárquica em java
  • Herança multinível em java
  • Sintaxe básica de herança única, multinível e hierárquica em Java
  • Como usar a herança única, multinível e hierárquica em Java

Então vamos começar!

Herança única

No caso de herança única, existe apenas uma classe pai e uma classe infantil e a classe infantil pode acessar os atributos e funções da classe da classe pai. Temos que cuidar de atributos de classe e métodos de classe para que não haja um conflito entre membros da classe de pais e filhos.

Sintaxe

A sintaxe básica da herança única será assim:

classe pública pai
// Atributos da classe
// Funções de membros

classe pública Child estende o pai
// Atributos da classe
// Funções de membros

O estende -se palavra -chave indica que as propriedades de Classe de pai são herdados para o Classe infantil.

A figura abaixo dada fornecerá uma melhor compreensão da herança única:

Existem apenas duas classes:

Classe infantil: pode herdar todos os atributos e métodos do Classe de pai E não tem subclasse.

Classe de pai: é uma superclasse herdada por Classe infantil.

Exemplo

No trecho de código abaixo, criamos três classes: um Pessoa classe estendida por Estudante classe e um “JavainHeritance”Classe onde criamos o principal método:

classe de classe
Personagem Int protegida = 25;
String protegida PersonName = "John";
public void Display ()
Sistema.fora.println ("Esta é a classe de pessoa");


Classe Student estende a pessoa
Int Rollno protegido = 13;

classe pública JavaAinHeritance
public static void main (string [] args)
Estudante std = new Student ();
std.mostrar();
Sistema.fora.println ("rolo de estudante não. = " + std.Núm. da lista);
Sistema.fora.println ("Nome do aluno =" + std.pessoa nome);
Sistema.fora.println ("estudante idade =" + std.personagem);

A figura abaixo é dada mostra o código completo junto com sua saída:

Na figura acima, um método de classe de pessoa é chamado com o objeto da aula de estudante e a saída mostra que funciona corretamente.

Herança hierárquica

Várias classes podem ser estendidas de uma classe em herança hierárquica i.e. um pai pode ter várias classes infantis.

A sintaxe básica da herança hierárquica é mostrada no snippet abaixo do rumo

classe pública pai
// Atributos da classe
// Funções de membros

classe pública Child1 estende o pai
// Atributos da classe
// Funções de membros

classe pública Child2 estende o pai
// Atributos da classe
// Funções de membros

O trecho acima mencionado mostra que as duas classes derivadas i.e. Child1 e Child2 pode herdar as propriedades do Pai aula.

A figura abaixo é dada mostra o fluxo de herança hierárquica:

Exemplo

classe de classe
String protegida PersonName = "John";

Classe Student estende a pessoa
Int Rollno protegido = 13;

classe funcionário estende a pessoa
protegido int empid = 2;

classe pública JavaAinHeritance
public static void main (string [] args)
Estudante std = new Student ();
Sistema.fora.println ("rolo de estudante não. = " + std.Núm. da lista);
Sistema.fora.println ("Nome do aluno =" + std.pessoa nome);
Funcionário emp = new funcionário ();
Sistema.fora.println ("ID do funcionário =" + Emp.empid);
Sistema.fora.println ("Nome do funcionário =" + Emp.pessoa nome);

Do trecho acima, podemos observar que ambos Funcionário e Estudante As aulas são herdadas pelo Pessoa Aula. Então, primeiro, temos que criar os objetos de ambas as classes individualmente, então seus respectivos atributos podem ser acessados ​​através de seus objetos.

O código completo e a saída resultante são mostrados na figura a seguir:

A captura de tela acima mostra que ambas as classes acessaram os atributos do Pessoa classe que autentica o funcionamento da herança hierárquica.

Herança multinível

Na herança multinível, a herança é realizada na base de nível, i.e. Uma classe pode herdar as propriedades de outra classe que já é herdada de outra classe.

Sintaxe

A sintaxe básica da herança multinível é mostrada no snippet abaixo:

classe pública pai
// Atributos da classe
// Funções de membros

classe pública Child1 estende o pai
// Atributos da classe
// Funções de membros

classe pública Child2 estende Child1
// Atributos da classe
// Funções de membros

A figura abaixo dada fornecerá uma compreensão profunda da herança multinível:

Na figura acima mencionada, o Child1 A classe é uma classe derivada do Pai Classe e Child2 classe é a classe derivada de Child1. Então, podemos dizer que o Child2 A classe é um neto do Pai aula. Dessa forma, a herança multinível funciona em java.

Exemplo

Este exemplo cria quatro classes: primeiro é “Pessoa”A classe Second One é“Estudante”Classe que herda a“Pessoa”A classe e a terceira é“Departamento”Classe que herda a“Estudante" aula. A quarta classe é “JavainHeritance” que mantém o método principal:

classe de classe
Personagem Int protegida = 25;
String protegida PersonName = "John";
public void Display ()
Sistema.fora.println ("Esta é a classe de pessoa");


Classe Student estende a pessoa
Int Rollno protegido = 13;

Departamento de classe estende o aluno
String protegida Dept = "Ciência da Computação";

classe pública JavaAinHeritance
public static void main (string [] args)
Departamento de departamento = novo departamento ();
Dep.mostrar();
Sistema.fora.println ("rolo de estudante não. = " + DEP.Núm. da lista);
Sistema.fora.println ("Nome do aluno =" + DEP.pessoa nome);
Sistema.fora.println ("Age do aluno =" + DEP.personagem);
Sistema.fora.println ("Departamento de Estudante =" + Dep.departamento);

No trecho acima, podemos observar que uma subclasse Estudante de aula Pessoa tem uma aula infantil Departamento o que garante que é um exemplo de herança multinível. A figura abaixo é dada fornece o código completo e a respectiva saída da herança multinível:

A saída acima mencionada autentica que o Departamento classe pode acessar os atributos de Pessoa Classe através Estudante aula. Que valida o funcionamento da herança multinível.

Conclusão

O Java fornece diferentes tipos de herança que podem ser usados ​​para propósitos diferentes, dependendo dos diferentes cenários e necessidades do usuário, por exemplo, em herança única, apenas uma única classe é estendida da superclasse. Na herança hierárquica, uma superclasse pode ter várias subclasses. Enquanto, em herança multinível, uma subclasse de uma classe pai também pode ter uma classe infantil. Este artigo apresenta uma visão geral completa dos tipos de herança e apresenta uma compreensão profunda de herança única, multinível e hierárquica, sua sintaxe e como implementá-los em java.