Diferença Entre Herança E Interface Em Java

Índice:

Diferença Entre Herança E Interface Em Java
Diferença Entre Herança E Interface Em Java

Vídeo: Diferença Entre Herança E Interface Em Java

Vídeo: Diferença Entre Herança E Interface Em Java
Vídeo: Entenda de forma DEFINITIVA a DIFERENÇA entre classes ABSTRATAS e INTERFACES - POO 2024, Novembro
Anonim

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 multiparadigma que suporta orientação 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 em OOP. Eles são herança, polimorfismo, abstração e encapsulamento. Herança e interfaces estão relacionadas a OOP. A principal diferença entre herança e interface é que a herança deve derivar novas classes de classes existentes e uma interface é implementar classes abstratas e herança múltipla.

CONTEÚDO

1. Visão geral e diferença principal

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 formato tabular

6. Resumo

O que é herança em Java?

A herança pode alcançar a reutilização do código. A herança ajuda a reutilizar os atributos e métodos de uma classe existente. O mecanismo de derivar uma 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 filha ou subclasse.

A sintaxe da herança Java é a seguinte.

class subclass_name extends 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 haja uma classe chamada A da seguinte maneira.

public class A {

public void sum () {

System.out.println (“Soma”);

}

}

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

public class B {

public void sub () {

System.out.println (“Sub”);

}

}

O programador pode usar herança para usar sum () da classe A.

public class B estende classe A {

public void sub () {

System.out.println (“Sub”);

}

}

Na função principal, é possível criar um objeto de 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 de vários níveis e herança hierárquica. Na herança única, existe uma classe base e uma classe derivada. Na 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. Na 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.

Diferença entre herança e interface em Java
Diferença entre herança e interface em Java

Figura 01: Herança

Na herança múltipla, existem muitas classes básicas e uma classe derivada. Suponha que as classes A e B sejam as classes básicas. A 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 ambigüidade. Herdar duas classes pode causar um erro em tempo de compilação. Portanto, a herança múltipla não é compatível com Java. Uma interface pode ser usada para superar esse problema.

O que é interface em Java?

Abstração é um processo de ocultar os detalhes de implementação e exibir apenas as funcionalidades para o usuário. A abstração pode ser alcançada 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. O exemplo de uma classe abstrata é o seguinte.

classe abstrata A {

soma vazia abstrata ();

}

Suponha que existam duas classes abstratas como A e B. Para implementar métodos abstratos de A e B, uma nova classe C é criada. Então, a classe C deve estender A e B., mas a herança múltipla não é compatível com 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 na interface A e B.

interface A {

soma vazia ();

}

interface B {

void sub ();

}

classe C implementa A, B {

public void sum () {

System.out.println (“Somatório”);

}

public void sub () {

System.out.println (“Subtração”);

}

}

Agora, no programa principal é possível criar um objeto de 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 fornece segurança. Consulte o código abaixo.

interface A {

soma vazia ();

}

classe B implementa A {

public void sum () {

System.out.println (“Somatório”);

}

public void multiply () {

System.out.println (“Multiplicação”);

}

}

Ao criar um objeto de B, é possível chamar ambos os métodos sum () e multiply (). Se o programador deseja 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 (); irá criar um objeto. É do tipo A e a memória é alocada como B. É possível chamar sum (), mas não pode executar multiply (). 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?

Artigo Diff meio antes da tabela

Herança vs interface em Java

Herança é um conceito OOP para derivar novas classes das classes existentes. Interface é um mecanismo em OOP para implementar abstração e herança múltipla.
Uso
A herança fornece capacidade de 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 oferece suporte à 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 existentes e interfaces é implementar classes abstratas e herança múltipla.

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

Você pode baixar a versão PDF deste artigo e usá-la para fins off-line de acordo com a nota de citação. Baixe a versão em PDF aqui. Diferença entre herança e interface em Java

Recomendado: