Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Java

Interface vs classe abstrata em Java:qual é a diferença?

O que é Interface?


A interface é um modelo que pode ser usado para implementar uma classe. A interface não contém nenhum método concreto (métodos que possuem código). Todos os métodos de uma interface são métodos abstratos.

Uma interface não pode ser instanciada. No entanto, as classes que implementam interfaces podem ser instanciadas. As interfaces nunca contêm variáveis ​​de instância, mas podem conter variáveis ​​finais estáticas públicas (ou seja, variáveis ​​de classe constantes)

O que é classe abstrata?


Uma classe que possui a palavra-chave abstract em sua declaração é chamada de classe abstrata. Classes abstratas devem ter pelo menos um método abstrato. , ou seja, métodos sem um corpo. Pode ter vários métodos concretos.

As classes abstratas permitem que você crie blueprints para classes concretas. Mas a classe herdada deve implementar o método abstrato.

Classes abstratas não podem ser instanciadas.

Motivos importantes para usar interfaces

Motivos importantes para usar a classe abstrata

Interface vs. Aula de Resumo


Uma classe abstrata permite que você crie uma funcionalidade que as subclasses podem implementar ou substituir, enquanto uma interface só permite que você declare a funcionalidade, mas não a implemente. Uma classe pode estender apenas uma classe abstrata enquanto uma classe pode implementar várias interfaces.
Parâmetros Interface Classe abstrata
Velocidade Lento Rápido
Várias heranças Implementar várias interfaces Apenas uma classe abstrata
Estrutura Métodos abstratos Métodos abstratos e concretos
Quando usar Aprimoramento futuro Para evitar a independência
Herança/Implementação Uma classe pode implementar várias interfaces A classe pode herdar apenas uma classe abstrata
Implementação padrão Ao adicionar novas coisas à interface, é um pesadelo encontrar todos os implementadores e implementar coisas recém-definidas. No caso de classe abstrata, você pode aproveitar a implementação padrão.
Modificadores de acesso A interface não possui modificadores de acesso. Tudo definido dentro da interface é assumido como modificador público. A classe abstrata pode ter um modificador de acesso.
Quando usar É melhor usar a interface quando várias implementações compartilham apenas a assinatura do método. Hierarquia polimórfica de tipos de valor. Deve ser usado quando várias implementações do mesmo tipo compartilham um comportamento comum.
Campos de dados a interface não pode conter campos de dados. a classe pode ter campos de dados.
Padrão de herança múltipla Uma classe pode implementar várias interfaces. Uma classe herda apenas uma classe abstrata.
Implementação Uma interface é abstrata, portanto não pode fornecer nenhum código. Uma classe abstrata pode fornecer um código padrão completo que deve ser substituído.
Uso de modificadores de acesso Você não pode usar modificadores de acesso para o método, propriedades, etc. Você pode usar uma classe abstrata que contém modificadores de acesso.
Uso As interfaces ajudam a definir as habilidades periféricas de uma classe. Uma classe abstrata define a identidade de uma classe.
Campos definidos Nenhum campo pode ser definido Uma classe abstrata permite que você defina campos e constantes
Herança Uma interface pode herdar várias interfaces, mas não pode herdar uma classe. Uma classe abstrata pode herdar uma classe e várias interfaces.
Construtor ou destruidores Uma interface não pode declarar construtores ou destruidores. Uma classe abstrata pode declarar construtores e destruidores.
Limite de extensões Ele pode estender qualquer número de interfaces. Ele pode estender apenas uma classe ou uma classe abstrata por vez.
Palavra-chave abstrata Em uma palavra-chave de interface abstrata, é opcional para declarar um método como abstrato. Em uma classe abstrata, a palavra-chave abstract é obrigatória para declarar um método como abstrato.
Tipo de classe Uma interface pode ter apenas métodos abstratos públicos. Uma classe abstrata tem métodos abstratos protegidos e públicos.

Exemplo de código para interface e classe abstrata em Java


A seguir está o código de exemplo para criar uma interface e uma classe abstrata em Java

Sintaxe da interface
interface name{
//methods
}

Exemplo de interface Java:
interface Pet {
    public void test();
}
class Dog implements Pet {
    public void test() {
        System.out.println("Interface Method Implemented");
    }
    public static void main(String args[]) {
        Pet p = new Dog();
        p.test();
    }
}

Sintaxe de classe abstrata
abstract class name{
    // code
}

Exemplo de classe abstrata:
abstract class Shape {
    int b = 20;
    abstract public void calculateArea();
}

public class Rectangle extends Shape {
    public static void main(String args[]) {
        Rectangle obj = new Rectangle();
        obj.b = 200;
        obj.calculateArea();
    }
    public void calculateArea() {
        System.out.println("Area is " + (b * b));
    }
}

Java

  1. Soldagem frontal vs soldagem reversa:Qual é a diferença?
  2. Ferro vs Aço:Qual é a diferença?
  3. Corte vs pregos de arame:Qual é a diferença?
  4. Corte a plasma vs. corte a laser:Qual é a diferença?
  5. Torno mecânico x Faceamento de fresamento:Qual é a diferença?
  6. Moagem vs Moagem:Qual é a diferença?
  7. Classe abstrata Java e métodos abstratos
  8. Interface Java
  9. Java - Abstração
  10. Java - Interfaces