Diferença entre herança e interface em Java

Diferença-chave - Herança vs Interface em Java
 

Java é uma linguagem de programação desenvolvida pela Sun Microsystems. Java pode ser usado para desenvolver vários aplicativos. É uma linguagem de múltiplos paradigmas que suporta orientada a objetos, estruturada etc. A principal vantagem do Java é que ele suporta programação orientada a objetos (OOP). O programador pode criar classes e objetos. Existem quatro pilares no POO. São herança, polimorfismo, abstração e encapsulamento. Herança e interfaces estão relacionadas ao POO. o diferença chave entre herança e interface é que herança é derivar novas classes de classes existentes e uma interface é implementar classes abstratas e herança múltipla.

CONTEÚDO

1. Visão geral e principais diferenças
2. O que é herança em Java
3. O que é interface em Java
4. Semelhanças entre herança e interface em Java
5. Comparação lado a lado - herança versus interface em Java em forma de tabela
6. Resumo

O que é herança em Java?

A herança pode obter reutilização de código. A herança ajuda a reutilizar os atributos e métodos de uma classe existente. O mecanismo de derivar nova classe usando a classe antiga é chamado de herança. A classe antiga é conhecida como classe pai ou super classe. A classe derivada é chamada de classe ou subclasse filho.

A sintaxe da herança Java é a seguinte.

classe subclass_name estende superclass_name

declaração de variável;

declaração de método;

O conceito de herança pode ser explicado usando o exemplo a seguir. Suponha que exista uma classe chamada A da seguinte maneira.

classe pública A

soma de nulidade pública ()

System.out.println ("Sum");

Se quisermos adicionar um novo método sem alterar a classe existente, podemos fazer o seguinte.

classe pública B

public void sub ()

System.out.println ("Sub");

Programador pode usar herança para usar classe A sum ().

a classe pública B estende a classe A

public void sub ()

System.out.println ("Sub");

Na função principal, é possível criar um objeto B e chamar sub (), que pertence à classe B e sum (), que pertence à classe A usando herança.

public static void main (String [] args)

B obj = novo B ();

obj.sub ();

obj.sum ();

Existem diferentes tipos de herança. Eles são herança única, herança múltipla, herança multinível e herança hierárquica. Dentro herança única, existe uma classe base e uma classe derivada. Dentro herança de vários níveis, Existem três classes, a saber, classe base, classe intermediária e classe derivada. A classe intermediária herda da classe base e a classe derivada herda da classe intermediária. Dentro herança hierárquica, existe uma classe base e muitas classes derivadas. Existe um tipo especial conhecido como Herança híbrida. É uma combinação de dois ou mais tipos de herança.

Figura 01: Herança

Dentro Herança múltipla existem muitas classes base e uma classe derivada. Suponha que as classes A e B sejam as classes base. Classe C é a classe derivada. Se as classes A e B tiverem o mesmo método e o programador chamar esse método da classe derivada, isso causará um problema de ambiguidade. Herdar duas classes pode causar um erro em tempo de compilação. Portanto, herança múltipla não é suportada em Java. Uma interface pode ser usada para superar esse problema.

O que é interface em Java?

Abstração é um processo de ocultar os detalhes da implementação e exibir apenas as funcionalidades para o usuário. A abstração pode ser obtida usando Classes Abstratas ou Interfaces. Um método abstrato é um método sem implementação. Uma classe com pelo menos um método abstrato é uma classe abstrata. Exemplo de uma classe abstrata é o seguinte.

classe abstrata A

soma nula abstrata ();

Suponha que haja duas classes abstratas como A e B. Para implementar métodos abstratos de A e B, uma nova classe C é criada. A classe C deve estender A e B. Mas a herança múltipla não é suportada em Java. Portanto, deve usar interfaces. As interfaces podem ser usadas para declarar métodos, mas não é possível definir métodos. Não é possível criar um objeto usando interfaces. A classe C deve implementar todos os métodos nas interfaces A e B.

interface A

soma nula ();

interface B

void sub ();

classe C implementa A, B

soma de nulidade pública ()

System.out.println ("Summation");

public void sub ()

System.out.println ("Subtração");

Agora, no programa principal, é possível criar um objeto C e chamar os dois métodos.

public static void main (String [] args)

C obj = novo C ();

obj.sum ();

obj.sub ();

Portanto, as interfaces podem ser usadas para implementar herança múltipla.

Outro uso de interfaces é que ele fornece segurança. Consulte o código abaixo.

interface A

soma nula ();

classe B implementa A

soma de nulidade pública ()

System.out.println ("Summation");

público vazio multiplicar ()

System.out.println ("Multiplicação");

Ao criar um objeto de B, é possível chamar os métodos sum () e multiply (). Se o programador quiser restringir usando a função multiply (), é possível da seguinte maneira.

public static void main (String [] args)

A obj = novo B ();

obj.sum ();

A obj = novo B (); criará um objeto. É do tipo A e a memória é alocada como B. É possível chamar sum (), mas não é possível executar a multiplicação (). Essa restrição é feita usando interfaces.

Quais são as semelhanças entre herança e interface em Java?

  • Ambos os conceitos estão relacionados à programação orientada a objetos
  • Ambos representam o relacionamento IS-A.

Qual é a diferença entre herança e interface em Java?

Herança vs Interface em Java

Herança é um conceito de POO para derivar novas classes das classes existentes. Interface é um mecanismo no OOP para implementar abstração e herança múltipla.
Uso
Herança fornece reutilização de código. As interfaces fornecem abstração e herança múltipla.

Resumo - Herança vs Interface em Java

Java é uma linguagem de programação multiparadigma que suporta programação orientada a objetos. Herança e interfaces estão relacionadas à programação orientada a objetos. A diferença entre herança e interface é que herança é derivar novas classes de classes e interfaces existentes, é implementar classes abstratas e herança múltipla..

Baixe a versão em PDF de Herança x Interface em Java

Você pode fazer o download da versão em PDF deste artigo e usá-la para fins offline, conforme nota de citação. Faça o download da versão em PDF aqui Diferença entre herança e interface em Java

Referência:

1.Point, Tutoriais. “Java Inheritance.”, Tutorials Point, 31 de outubro de 2017. Disponível aqui 
2.Point, Tutoriais. "Interfaces Java". , Tutorials Point, 31 de outubro de 2017. Disponível aqui 

Cortesia da imagem:

1.'CPT-OOP-heritage-bikes 'Por Pluke - Trabalho próprio, (Domínio Público) via Commons Wikimedia