Tipos de herança em Java: único, múltiplo, multinível e híbrido

Publicados: 2021-06-30

Introdução

A linguagem de programação “Java” é amplamente utilizada no desenvolvimento de aplicativos para mobile, web, desktop, etc. É uma linguagem de programação robusta, de alto nível e orientada a objetos desenvolvida pela Sun Microsystems em 1995. Apesar de ser uma linguagem de programação , Java possui uma API e um ambiente de tempo de execução (JRE) e, portanto, também chamado de plataforma.

Vários conceitos existem em Java, com quatro conceitos principais para se apoderar da linguagem. Eles são abstração, encapsulamento, herança e polimorfismo.

Neste artigo, focaremos no conceito de herança em Java e nos tipos de herança em java .

O que é herança?

Como o nome sugere, herança significa herdar as propriedades. O mecanismo pelo qual uma classe pode derivar as propriedades de uma classe diferente é denominado herança. Com o conceito de herança, as informações em um programa podem ser organizadas hierarquicamente.

Em Java, o conceito de herança permite que os usuários criem classes e usem as propriedades das classes existentes.

Algumas terminologias importantes associadas ao conceito são:

  • Classe : É definida como um grupo de objetos que compartilham propriedades comuns.
  • Subclasse : também conhecida como classe derivada ou estendida, esta classe herda os recursos de outra classe. Além dos campos e métodos herdados, a classe gerada a partir da classe pode adicionar campos e métodos próprios.
  • Superclasse : A superclasse representa a classe cujas características são herdadas por uma subclasse.
  • Reusabilidade : A técnica de reutilização permite ao usuário criar uma classe (uma nova) contendo os campos ou métodos de uma classe já existente. Permite reutilizar o código.

Importância da herança Java

A implementação de herança em Java oferece os seguintes benefícios:

  • A herança minimiza a complexidade de um código minimizando o código duplicado. Se o mesmo código tiver que ser usado por outra classe, ele pode simplesmente ser herdado dessa classe para sua subclasse. Assim, o código fica mais organizado.
  • A eficiência de execução de um código aumenta à medida que o código é organizado de forma mais simples.
  • O conceito de polimorfismo pode ser usado junto com herança.

Sintaxe

A sintaxe básica é

Superclasse de classe {

—————-

}

classe subclasse estende superclasse

{

————–

—————–

}

A palavra-chave “extends” é usada ao herdar uma classe. Ele define que a funcionalidade da superclasse está sendo estendida para a subclasse.

A nova classe criada é chamada de subclasse, enquanto a classe herdada é chamada de classe pai.

Figura 1: Um exemplo de código aplicando herança java é mostrado abaixo

Fonte

Duas classes Calculation e My_Calculation são criadas no exemplo acima. Os métodos add() e Subtraction() são herdados do cálculo da classe no My_Calculation. A palavra-chave estende foi usada para herdar os métodos.

A compilação e execução do código acima fornecem a seguinte saída.

Figura 2: A saída do código na Figura 1

Fonte

A criação da classe My_Calculation copia o conteúdo da superclasse para a subclasse. Com os objetos da subclasse, os usuários podem acessar o membro da subclasse.

Em certos casos, quando temos que diferenciar os membros da subclasse daqueles da superclasse com os mesmos nomes, a palavra-chave “super” é usada. Se supostamente temos duas classes Sub_class e Super_class com o mesmo método, ou seja, display(). A implementação do método é diferente, mas tem o mesmo nome. Nesse caso, para diferenciar a superclasse do método daquela da subclasse, a palavra-chave super deve ser usada.

Tipos de herança Java

Os diferentes tipos de herança são observados em Java:

1. Herança de nível único

Como o nome sugere, esse tipo de herança ocorre apenas para uma única classe. Apenas uma classe é derivada da classe pai. O diagrama de fluxo de uma única herança é mostrado abaixo:

Figura 3: Ilustração gráfica de herança de nível único

Fonte

Duas classes Classe A e Classe B são mostradas na Figura 3 , onde a Classe B herda as propriedades da Classe A.

Figura 4 : Um exemplo de código aplicando herança de nível único

Fonte

2. Herança multinível

A herança multinível inclui o envolvimento de pelo menos duas ou mais de duas classes. Uma classe herda os recursos de uma classe pai e a subclasse recém-criada se torna a classe base para outra nova classe.

Figura 5: um diagrama de fluxo de herança multinível

Fonte

A partir do diagrama de fluxo na Figura 5 , podemos observar que a Classe B é uma classe derivada da Classe A, e a Classe C é ainda derivada da Classe B. Portanto, o conceito de classe avó passa a existir na herança multinível. No entanto, os membros da classe de um avô não podem ser acessados ​​diretamente em Java.

Portanto, a Figura 5 mostra que a Classe C está herdando os métodos e propriedades da Classe A e da Classe B.

Um exemplo de herança multinível é mostrado abaixo com três classes X, Y e Z. A classe Y é derivada da classe X, que cria ainda mais a classe Z.

Figura 6: Um exemplo de herança multinível

Fonte

3. Herança Hierárquica

O tipo de herança onde muitas subclasses herdam de uma única classe é conhecido como Herança Hierárquica.

Figura 7: Representação gráfica de uma herança hierárquica.

Na Figura 7 , podemos observar que as três classes Classe B, Classe C e Classe D são herdadas da única Classe A. Todas as classes filhas têm a mesma classe pai na herança hierárquica.

Figura 8: Um exemplo de código mostrando o conceito de herança hierárquica

Fonte

O código acima produz a saída

miando...

comendo…

Além desses tipos de herança em Java , existem outros tipos conhecidos como heranças múltiplas e herança híbrida. Ambos os tipos não são suportados por meio de classes e podem ser alcançados apenas por meio do uso de interfaces.

4. Herança múltipla

Heranças múltiplas é um tipo de herança onde uma subclasse pode herdar características de mais de uma classe pai.

Figura 9: Representação de heranças múltiplas

Fonte

A Figura 4 mostra que a Classe C é derivada das duas classes Classe A e Classe B. Em outras palavras, pode-se descrever que a subclasse C herda propriedades da Classe A e da Classe B.

5. Herança Híbrida

A herança híbrida é um tipo de herança que combina herança única e herança múltipla. Como as heranças múltiplas não são suportadas pelo Java, a herança híbrida também pode ser obtida apenas por meio de interfaces.

Figura 10: Representação de uma herança híbrida

Fonte

Com os diferentes tipos de herança em Java, o objetivo final é criar subclasses com propriedades herdadas das superclasses. As subclasses criadas possuem várias propriedades que são:

  • Campos e métodos herdados em uma subclasse podem ser usados ​​diretamente.
  • Novos campos e métodos também podem ser declarados na subclasse que não está presente na superclasse.
  • Um novo método de instância pode ser criado na subclasse com a mesma assinatura do método na superclasse. O processo é conhecido como sobreposição.
  • Um novo método estático pode ser criado na subclasse com a mesma assinatura do método na superclasse. O processo é chamado de ocultação.

Aprenda cursos de software online das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.

Conclusão

O artigo discutiu o importante conceito de herança em Java e os tipos de herança em Java . A herança é, portanto, o mecanismo onde podemos reutilizar os códigos para adquirir as propriedades de uma classe em outra classe. Isso pode ser alcançado por meio dos diferentes tipos de padrões de herança, conforme mostrado no artigo. No entanto, há muito mais no conceito de herança. Para se destacar no campo do desenvolvimento, é necessário dominar a programação complexa do Java. Se você tem o sonho de inovar em dispositivos inteligentes, então o Executive PG Program in Full-stack Software Development oferecido pela upGrad’s seria a melhor escolha. Certificado pela Liverpool John Moores University , o curso em associação com o IIIT Bangalore oferece mais de 500 horas de aprendizado e é projetado para profissionais iniciantes. A habilidade aprendida no curso do upGrad ajudará a abrir oportunidades para o campo de desenvolvimento de software, desenvolvimento web, desenvolvedor javascript, etc. Aberto a qualquer sexo na faixa etária de 21 a 45 anos, o programa interativo pode ser a melhor escolha para todos os codificadores.

O que é herança?

A herança é um processo pelo qual um novo objeto adquire as propriedades do objeto anterior. Como exemplo, você pode considerar uma classe 'humana'. Pode haver muitas propriedades de humanos que você deseja incluir em sua classe, como altura, peso, etc. Portanto, uma maneira de fazer isso é definir todas essas propriedades novamente em sua classe. Pode ser uma boa maneira de aprender programação orientada a objetos, mas não é uma boa prática. A melhor maneira de fazer isso é herdar todas essas propriedades de uma classe específica. A classe 'filho' pode herdar todas as propriedades da classe 'humano' (ou 'pai'). Isso é chamado de herança na programação orientada a objetos.

O que é programação orientada a objetos?

O que é herança múltipla?