Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Java

Interfaz vs clase abstracta en Java:¿cuál es la diferencia?

¿Qué es la interfaz?

La interfaz es un modelo que se puede utilizar para implementar una clase. La interfaz no contiene ningún método concreto (métodos que tienen código). Todos los métodos de una interfaz son métodos abstractos.

No se puede instanciar una interfaz. Sin embargo, se pueden crear instancias de clases que implementan interfaces. Las interfaces nunca contienen variables de instancia, pero pueden contener variables finales estáticas públicas (es decir, variables de clase constante)

¿Qué es la clase abstracta?

Una clase que tiene la palabra clave abstracta en su declaración se llama clase abstracta. Las clases abstractas deben tener al menos un método abstracto. , es decir, métodos sin cuerpo. Puede tener múltiples métodos concretos.

Las clases abstractas le permiten crear planos para clases concretas. Pero la clase heredera debería implementar el método abstracto.

Las clases abstractas no se pueden instanciar.

Razones importantes para usar interfaces

Razones importantes para usar la clase abstracta

Interfaz vs. Clase abstracta

Una clase abstracta le permite crear una funcionalidad que las subclases pueden implementar o anular, mientras que una interfaz solo le permite indicar la funcionalidad pero no implementarla. Una clase puede extender solo una clase abstracta mientras que una clase puede implementar múltiples interfaces.

Parámetros Interfaz Clase abstracta
Velocidad Lento Rápido
Herencias Múltiples Implementar varias interfaces Solo una clase abstracta
Estructura Métodos abstractos Métodos abstractos y concretos
Cuándo usar Mejora futura Para evitar la independencia
Herencia/Implementación Una clase puede implementar múltiples interfaces La clase puede heredar solo una clase abstracta
Implementación predeterminada Al agregar cosas nuevas a la interfaz, es una pesadilla encontrar todos los implementadores e implementar cosas recién definidas. En el caso de la clase abstracta, puede aprovechar la implementación predeterminada.
Modificadores de acceso La interfaz no tiene modificadores de acceso. Todo lo definido dentro de la interfaz se asume como modificador público. La clase abstracta puede tener un modificador de acceso.
Cuándo usar Es mejor usar la interfaz cuando varias implementaciones comparten solo la firma del método. Jerarquía polimórfica de tipos de valores. Debe usarse cuando varias implementaciones del mismo tipo comparten un comportamiento común.
Campos de datos la interfaz no puede contener campos de datos. la clase puede tener campos de datos.
Predeterminado de herencia múltiple Una clase puede implementar numerosas interfaces. Una clase hereda solo una clase abstracta.
Implementación Una interfaz es abstracta, por lo que no puede proporcionar ningún código. Una clase abstracta puede proporcionar un código predeterminado completo que debe anularse.
Uso de modificadores de acceso No puede usar modificadores de acceso para el método, propiedades, etc. Puede usar una clase abstracta que contiene modificadores de acceso.
Uso Las interfaces ayudan a definir las habilidades periféricas de una clase. Una clase abstracta define la identidad de una clase.
Campos definidos No se pueden definir campos Una clase abstracta le permite definir tanto campos como constantes
Herencia Una interfaz puede heredar múltiples interfaces pero no puede heredar una clase. Una clase abstracta puede heredar una clase y varias interfaces.
Constructores o destructores Una interfaz no puede declarar constructores o destructores. Una clase abstracta puede declarar constructores y destructores.
Límite de Extensiones Puede extender cualquier número de interfaces. Puede extender solo una clase o una clase abstracta a la vez.
Palabra clave abstracta En una palabra clave de interfaz abstracta, es opcional para declarar un método como abstracto. En una clase abstracta, la palabra clave abstracta es obligatoria para declarar un método como abstracto.
Tipo de clase Una interfaz solo puede tener métodos abstractos públicos. Una clase abstracta tiene métodos abstractos protegidos y públicos.

Código de muestra para interfaz y clase abstracta en Java

El siguiente es un código de muestra para crear una interfaz y una clase abstracta en Java

Sintaxis de la interfaz

interface name{
//methods
}

Ejemplo de interfaz 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();
    }
}

Sintaxis de clase abstracta

abstract class name{
    // code
}

Ejemplo de clase abstracta:

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. Soldadura de derecha frente a soldadura de revés:¿Cuál es la diferencia?
  2. Hierro vs acero:¿Cuál es la diferencia?
  3. Clavos cortados frente a clavos de alambre:¿cuál es la diferencia?
  4. Corte por plasma vs corte por láser:¿Cuál es la diferencia?
  5. Torno frente a fresado:¿cuál es la diferencia?
  6. Fresado vs rectificado:¿Cuál es la diferencia?
  7. Clase abstracta de Java y métodos abstractos
  8. Interfaz Java
  9. Java - Abstracción
  10. Java - Interfaces
  11. Motor de CC frente a motor de CA:¿cuál es la diferencia?