Tipos de herança em Java com exemplos

Publicados: 2022-06-26

A herança em Java permite que os desenvolvedores criem novas classes com as existentes. Permite a reutilização do código. A herança pode ser herança simples e herança multinível. A herança diminui a redundância do código, torna-o mais legível e de fácil manutenção e, portanto, atua como uma ferramenta para aumentar a qualidade do software.

Índice

Importância da herança

Em Java, Herança é o método pelo qual uma classe adquire as propriedades e funcionalidades de outra classe. A herança economiza tempo, diminui a redundância, torna o código mais legível, compreensível e de fácil manutenção e atua como uma ferramenta para aumentar a qualidade do software. A herança tem muitas aplicações vitais na linguagem de programação Java A herança permite que os desenvolvedores criem novas classes usando classes existentes As classes herdadas agem como modelos ou esquemas A herança fornece reutilização de software As classes herdadas agem como um relacionamento pai-filho Métodos herdados tornam as classes herdadas independentes Atributos herdados tornam as classes herdadas independente.

A hierarquia de herança denota um relacionamento pai-filho entre os diferentes níveis de herança. O nível mais alto de herança é conhecido como “Super Classe” ou “Classe Pai”.

Aprenda cursos de desenvolvimento 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.

Sintaxe da herança Java

class O nome da subclasse estende o nome da superclasse

{

//métodos e campos

}

A palavra-chave estendida indica que você está criando uma nova classe que herda toda a funcionalidade de seu pai. Significa “aumentar” ou melhorar o que já existe.

Exemplo: No exemplo de herança abaixo, a classe Bicycle é uma classe base, a classe MountainBike é uma classe derivada que estende a classe Bicycle e a classe Test é uma classe de driver para executar um programa.

Entrada:

// Programa Java para ilustrar o

// conceito de herança

// classe base

classe Bicicleta {

// a classe Bicycle tem dois campos

engrenagem int pública;

velocidade int pública;

// a classe Bicycle tem um construtor

bicicleta pública (engrenagem int, velocidade int)

{

this.gear = engrenagem;

this.speed = velocidade;

}

// a classe Bicycle tem três métodos

public void applyBrake(int decrement)

{

velocidade -= decremento;

}

public void speedUp (incremento int)

{

velocidade += incremento;

}

// método toString() para imprimir informações da bicicleta

public String toString()

{

return (“Nº de engrenagens são ” + engrenagem + “\n”

+ “velocidade da bicicleta é” + velocidade);

}

}

// classe derivada

class MountainBike estende bicicleta {

// a subclasse MountainBike adiciona mais um campo

public int seatHeight;

// a subclasse MountainBike tem um construtor

Public MountainBike (engrenagem int, velocidade int,

int startAltura)

{

// invocando o construtor base-class(Bicycle)

super(engrenagem, velocidade);

assentoAltura = inícioAltura;

}

// a subclasse MountainBike adiciona mais um método

public void setHeight(int newValue)

{

assentoAltura = newValue;

}

// sobrescrevendo o método toString()

// de Bicicleta para imprimir mais informações

@Override public String toString()

{

return (super.toString() + “\naltura do assento é “

+ altura do assento);

}

}

// classe do motorista

classe pública Teste {

public static void main(String args[])

{

MountainBike mb = new MountainBike(3, 100, 25);

System.out.println(mb.toString());

}

}

Saída :

Nº de engrenagens são 3

velocidade da bicicleta é 100

altura do assento é 25

Termos usados ​​na herança

  • Classe : Uma classe é um grupo de objetos que possuem propriedades comuns. É como um manual de instruções ou projeto a partir do qual outras unidades individuais são criadas.
  • Subclasse/classe filha : Uma subclasse é uma classe que herda a outra classe. Também é chamada de classe derivada, classe estendida ou classe filha.
  • Superclasse /classe-mãe : Superclasse é a classe da qual uma subclasse herda as características. Também é chamada de classe base ou classe pai.
  • Reusabilidade : A reutilização é um princípio de design chave na programação orientada a objetos. Isso significa que você pode reutilizar os campos e métodos de classes existentes ao criar novas classes, em vez de se repetir novamente com codificação individual todas as vezes.

Cursos e artigos populares sobre engenharia de software

Programas populares
Programa PG Executivo em Desenvolvimento de Software - IIIT B Programa de Certificado Blockchain - PURDUE Programa de Certificado de Segurança Cibernética - PURDUE Mestrado em Ciência da Computação - IIIT B
Outros artigos populares
Salário de Engenheiro de Nuvem nos EUA 2021-22 Salário do AWS Solution Architect nos EUA Salário de desenvolvedor back-end nos EUA Salário de Desenvolvedor Front-End nos EUA
Salário de desenvolvedor web nos EUA Perguntas da entrevista do Scrum Master em 2022 Como iniciar uma carreira em segurança cibernética em 2022? Opções de carreira nos EUA para estudantes de engenharia

Tipos de herança Java

1. Herança Única

Herança Simples significa que uma classe estende outra ou implementa várias interfaces ao mesmo tempo com o mesmo modificador de acesso ou não modificador de acesso, ou seja, público ou privado. A subclasse criada herda todas as funções-membro e membros de dados de sua base/superclasse, exceto aqueles declarados como privados, e esses membros podem ser acessados ​​pelos membros e amigos da subclasse.

Consulte o exemplo abaixo:

Entrada:

// Programa Java para ilustrar o

// conceito de herança simples

import java.io.*;

import java.lang.*;

import java.util.*;

classe um {

public void print_A()

{

System.out.println(“A”);

}

}

classe dois estende um {

public void print_for() { System.out.println(“for”); }

}

// Classe do motorista

classe pública Principal {

public static void main(String[] args)

{

dois g = novo dois();

g.print_A();

g.print_for();

g.print_Apple();

}

}

Saída :

UMA

Por

Maçã

2. Herança Multinível

Herança multinível é aquela em que há uma cadeia de herança. n Em Java, uma classe derivada não pode acessar diretamente os membros do avô. Quando você tem uma hierarquia de herança como esta onde cada novo nível herda de outra pessoa ou coisa antes deles (ou vice-versa), torna-se difícil para qualquer objeto em qualquer grupo porque eles só podem usar o que está disponível em seus respectivos níveis; portanto, tornando a depuração mais tediosa do que o necessário!

Entrada:

// Programa Java para ilustrar o

// conceito de herança multinível

import java.io.*;

import java.lang.*;

import java.util.*;

classe um {

public void print_Inheritance()

{

System.out.println(“Herança”);

}

}

classe dois estende um {

public void print_in() { System.out.println(“in”); }

}

classe três estende dois {

public void print_Inheritance()

{

System.out.println(“Java”);

}

}

// Classe derivada

classe pública Principal {

public static void main(String[] args)

{

três g = novo três();

g.print_Herança();

g.print_in();

g.print_Java();

}

}

Saída :

Herança

Dentro

Java

3. Herança Hierárquica

Duas classes em uma hierarquia podem herdar uma da outra. Por exemplo, se o cão e o gato se enquadram em Animal, haverá herança hierárquica com eles sendo descendentes dessa classe.

Entrada:

classe Animal{

void comer(){System.out.println(“comendo…”);}

}

class Dog estende Animal{

void bark(){System.out.println(“latindo…”);}

}

class Cat estende Animal{

void miau(){System.out.println(“miando…”);}

}

class TestInheritance3{

public static void main(String args[]){

Gato c=novo Gato();

c.meow();

c.comer();

//c.bark();//CTError

}}

Saída :

miando...

comendo…

4. Herança múltipla (através de interfaces)

Java não suporta herança múltipla com classes, mas é possível alcançá-las por meio de interfaces. Na imagem abaixo a classe C é derivada tanto de A quanto de B, o que significa que eles compartilham alguns recursos enquanto possuem implementações diferentes para outros dependendo de suas necessidades específicas na execução de código ou cumprimento de métodos exigidos pelos usuários (i).

Entrada:

// Programa Java para ilustrar o

// conceito de herança múltipla

import java.io.*;

import java.lang.*;

import java.util.*;

interface um {

public void print_eye();

}

interface dois {

public void print_for();

}

interface três estende um, dois {

public void print_eye();

}

class child implementa três {

@Override public void print_eye()

{

System.out.println(“Olho”);

}

public void print_for() { System.out.println(“for”); }

}

// Classe derivada

classe pública Principal {

public static void main(String[] args)

{

filho c = novo filho();

c.print_eye();

c.print_for();

c.print_eye();

}

}

Saída :

Olho

por

Olho

5. Herança Híbrida (Através de Interfaces)

Herança híbrida é um tipo de programação que nos permite misturar dois ou mais tipos. As classes não podem fazer isso sozinhas porque têm apenas um conjunto de métodos, o que significa que precisamos de outro objeto para que tudo funcione corretamente, mas as interfaces oferecem tranquilidade, permitindo que você saiba como será o seu programa antes que qualquer código seja escrito !

Entrada

(Referência)

As classes A e B estendem a classe C → Herança hierárquica

A classe D estende a classe A → Herança simples

classe C

{

public void disp()

{

System.out.println(“C”);

}

}

classe A estende C

{

public void disp()

{

System.out.println(“A”);

}

}

classe B estende C

{

public void disp()

{

System.out.println(“B”);

}

}

classe D estende A

{

public void disp()

{

System.out.println(“D”);

}

public static void main(String args[]){

D obj = new D();

obj.disp();

}

}

Resultado:

D

Se você gostaria de aprender em profundidade sobre herança em Java e outros conceitos de POO, recomendamos o Programa PG Executivo do upGrad em Desenvolvimento de Software do IIIT-Bangalore . O curso de 13 meses foi desenvolvido por profissionais e professores da indústria de classe mundial para desenvolver competência em mais de 30 ferramentas e software. Ele incluiu mais de 400 horas de conteúdo, mais de 30 estudos de caso e projetos relevantes para o setor e mais de 10 sessões ao vivo para ajudá-lo a alcançar os resultados desejados; O curso oferece três especializações, ou seja, desenvolvimento full-stack, desenvolvimento de back-end em nuvem e segurança cibernética.

Reserve o seu lugar no programa hoje!

Quais são os quatro tipos de herança?

Os quatro tipos de herança em Java são: 1. Herança hierárquica 2. Herança híbrida 3. Herança simples 4. Herança multinível

Explique o polimorfismo em Java.

Polimorfismo em Java é um conceito de Programação Orientada a Objetos sob o qual objetos em programas podem assumir múltiplas formas. Isso permite que um único objeto execute a mesma ação de várias maneiras.

Explicar multithreading em Java.

Multithreading em Java é um recurso através do qual várias partes (cada uma chamada de thread) de um programa podem ser executadas simultaneamente para permitir a utilização ideal da CPU.