Visão Geral da Herança em Java

Diferentemente de outras linguagens de programação como C, Java oferece um mecanismo pelo qual membros de dados e métodos de uma classe são herdados por outra classe. Este processo é conhecido como Herança em Java. Para herdar de uma classe, a palavra-chave 'extends' é usada. A herança em Java permite a reutilização do código, para que uma classe precise apenas gravar os recursos exclusivos e o restante do código possa ser estendido da outra classe. A classe que herda da outra classe é conhecida como subclasse ou classe filho e a classe que está sendo herdada é conhecida como classe pai ou superclasse. Sintaxe, tipos e implementação de herança serão discutidos nas seções a seguir.

Tipos de herança em Java

Herança significa um relacionamento IS-A que também é conhecido como relacionamento pai-filho. Pai e filho já são mencionados na parte de introdução.

Antes de passar para os tipos de herança em java, primeiro, vamos ver a sintaxe da herança.

Sintaxe:

class apple extends fruit
(
//methods and fields
)

Aqui, a maçã é a subclasse e a fruta é a classe dos pais. Isso significa que a maçã tem certas propriedades únicas e também as propriedades da fruta.

Existem 4 tipos diferentes de herança em Java.

  • Herança única
  • Herança multinível
  • Herança Hierárquica
  • Herança Múltipla (Com a ajuda de interfaces)

Agora, vamos ver cada um deles em detalhes.

1. Herança Única

Uma classe que estende apenas uma classe. No exemplo a seguir, a classe apple estende os frutos da classe.

ie Fruit é a superclasse e Apple é a subclasse que estende as propriedades e o comportamento da classe Fruit.

A seguir, é demonstrada a herança única em Java.

Código:

//Java program to demonstrate Single Inheritance
//parent class
class fruit (
public void taste()
(
System.out.println("Fruits are sweet");
)
)
//child class of fruit
class apple extends fruit
(
public void shape()
(
System.out.println("Apple is round");
)
)
public class InheritanceExample
(
public static void main(String() args) (
apple fr = new apple(); //object of child class
fr.taste(); //call method of parent class
fr.shape(); //call method of child class
)
)

Resultado:

2. Herança multinível

Nesse tipo de herança, uma classe será estendida de outra classe e a classe derivada atuará como a classe base de alguma outra classe.

Por exemplo, na figura, uma classe de quatro rodas é a classe pai e o carro é a classe derivada da classe de quatro rodas. Ao mesmo tempo, o carro da classe pode ser a classe base da classe Maruti.

Código:

//Java program to demonstrate Multiple Inheritance
//parent class
class fourwheeler (
public void wheels()
(
System.out.println("I have 4 wheels");
)
)
//child class of fourwheeler and parent of maruti
class car extends fourwheeler
(
public void type()
(
System.out.println("I'm a car");
)
)
//child class of car class
class maruti extends car
(
public void comp()
(
System.out.println("I'm maruti");
)
)
public class InheritanceExample
(
public static void main(String() args) (
maruti fr = new maruti(); //object of child class
fr.wheels();
fr.type();
fr.comp();
)
)

Resultado:

3. Herança Hierárquica

Na herança hierárquica, uma classe base tem mais de uma classe filha, o que significa que as propriedades de uma classe são adquiridas por diferentes classes.

Por exemplo, um veículo de classe tem subclasses de carros, motos e scooters.

Código:

//Java program to demonstrate Hierarchical Inheritance
//parent class
class vehicle (
public void wheels()
(
System.out.println("I have wheels");
)
)
//first child class of vehicle class
class bike extends vehicle
(
public void countwl()
(
System.out.println("I am a bike and has 2 wheels");
)
)
//second child class of vehicle class
class car extends vehicle
(
public void countwlc()
(
System.out.println("I am a car and has 4 wheels");
)
)
//third child class of vehicle class
class scooter extends vehicle
(
public void countwls()
(
System.out.println("I am a scooter and has 2 wheels");
)
)
public class InheritanceExample
(
public static void main(String() args) (
scooter sc = new scooter(); //object of scooter class
sc.wheels();
sc.countwls();
car c = new car(); //object of car class
c.wheels();
c.countwlc();
bike b= new bike();//object of bike class
b.wheels();
b.countwl();
)
)

Resultado:

4. Herança Múltipla

Heranças múltiplas em java são um tipo de herança na qual uma classe possui mais de uma classe pai.

Por exemplo, a classe C adquire as propriedades da classe A e da classe B.

Mas, em Java, a herança múltipla pode ser alcançada apenas usando interfaces.

Suponha que várias heranças sejam implementadas como outros tipos de herança, um erro em tempo de compilação pode ocorrer da seguinte maneira.

Código:

//Java program to demonstrate multiple Inheritance
//parent class
class A
(
public void hh()
(
System.out.println("A is working");
)
)
class B
(
public void hh()
(
System.out.println("B is working");
)
)
class C extends A, B
(
//code for class c
)
public class InheritanceExample
(
public static void main(String() args) (
C sc = new C(); //object of C class
C.hh();
)
)

Aqui, a saída não será exibida, pois contém um erro em tempo de compilação.

Importância da herança em Java

  • Reutilização de código: a herança ajuda a reduzir a reescrita do código. ou seja, o código pode ser reutilizado por outras classes e a classe filho precisa apenas escrever suas próprias propriedades. Isso reduz o consumo de tempo e a complexidade do código.
  • Para Substituição de Método: Um método que já está presente na classe pai é declarado pela classe filha e é conhecido como substituição de método.
Nota: Suponha que, se uma classe não deve ser reutilizada, a palavra-chave final pode ser usada.

Sintaxe:

final class A
(
. . .
)
Class B extends A
(
. . .
)

Nesse caso, será gerado um erro que diz 'Não é possível herdar do A final'.

Conclusão

A herança em Java é uma propriedade pela qual as propriedades e o comportamento de uma classe são adquiridos por outra classe para fornecer reutilização de código. Existem diferentes tipos de herança em Java, como Herança Única, Herança Multinível, Herança Hierárquica e Herança Múltipla em Java. Neste documento, vários aspectos importantes da herança são abordados.

Artigos recomendados

Este é um guia para herança em Java. Aqui discutimos a importância e os diferentes tipos de herança em java, juntamente com sintaxe, exemplos e implementação de código. Você também pode consultar os seguintes artigos para saber mais:

  1. JScrollPane em Java
  2. Sessões em PHP
  3. Classificação em Java
  4. O que é o Java Garbage Collector?
  5. Ferramentas de implantação Java
  6. Substituindo em Java
  7. Herança em PHP