Diferencia entre abdominalestract Clase e Interfaz en Java

Diferencia clave entre abdominalestract Clase e Interfaz en Java

  • En Interface, una clase puede implementar mรบltiples interfaces, mientras que la clase solo puede heredar una Abs.tracClase t.
  • En Interface no tiene modificadores de acceso. Se asume que todo lo definido dentro de Interface tiene un modificador pรบblico, mientras que AbstracLa clase t puede tener un modificador de acceso.
  • La interfaz no puede contener campos de datos, mientras que el abstracLa clase t puede tener campos de datos.
  • Las interfaces ayudan a definir las capacidades perifรฉricas de una clase, mientras que una abstracLa clase t define la identidad de una clase.

Interfaz vs AbstracClase t en Java

ยฟQuรฉ es un Abs?tracยฟClase t?

Una clase que tiene los abstracLa palabra clave t en su declaraciรณn se llama abstracClase t. AbstracLas clases t deberรญan tener cero o mรกs abstracmรฉtodos t. es decir, mรฉtodos sin cuerpo. Puede tener mรบltiples mรฉtodos concretos. AbstracLas clases t permiten crear planos para clases concretas. Pero la clase que hereda debe implementar el abstracMรฉtodo t. AbstracLas clases t no se pueden instanciar.

Razones importantes para utilizar interfaces

  • Las interfaces se utilizan para lograr abstracciรณn.
  • Diseรฑado para admitir la resoluciรณn de mรฉtodos dinรกmicos en tiempo de ejecuciรณn
  • Le ayuda a lograr un acoplamiento flojo.
  • Le permite separar la definiciรณn de un mรฉtodo de la jerarquรญa de herencia.

Razones importantes para usar abdominalestracClase t

  • AbstracLas clases t ofrecen funcionalidad predeterminada para las subclases.
  • Proporciona una plantilla para futuras clases especรญficas.
  • Le ayuda a definir una interfaz comรบn para sus subclases.
  • AbstracLa clase t permite la reutilizaciรณn del cรณdigo.

ยฟQuรฉ es una interfaz?

La interfaz es un plano que se puede utilizar para implementar una clase. La interfaz no contiene ningรบn mรฉtodo concreto (mรฉtodos que tengan cรณdigo). Todos los mรฉtodos de una interfaz son absolutos.tracMรฉtodos t. Una interfaz no se puede instanciar. Sin embargo, las clases que implementan interfaces sรญ se pueden instanciar. Las interfaces nunca contienen variables de instancia, pero sรญ pueden contener variables pรบblicas estรกticas finales (es decir, variables de clase constantes).

Diferencia entre interfaz y absorciotracClase t en Java

Un abstracUna clase permite crear funcionalidades que las subclases pueden implementar o sobrescribir, mientras que una interfaz solo permite declarar la funcionalidad, pero no implementarla. Una clase solo puede extender una interfaz.tracuna clase t puede implementar mรบltiples interfaces.

Parรกmetros Fรกcil de usar Abstracclase t
Speed (Rapidez) Lenta Rรกpido
Herencias Mรบltiples Implementar varias interfaces Solo un abdominaltracclase t
Estructura Abstracmรฉtodos t Abstract y mรฉtodos concretos
Cuรกndo usarlos Mejora futura Para evitar la independencia
Herencia/Implementaciรณn Una clase puede implementar mรบltiples interfaces La clase solo puede heredar un Abs.tracClase t
Implementaciรณn predeterminada Al agregar cosas nuevas a la interfaz, es una pesadilla encontrar todos los implementadores e implementar cosas reciรฉn definidas. En caso de AbstracEn la clase t, puede aprovechar la implementaciรณn predeterminada.
Modificadores de acceso La interfaz no tiene modificadores de acceso. Todo lo definido dentro de la interfaz se supone un modificador pรบblico. AbstracLa clase t puede tener un modificador de acceso.
Cuรกndo usarlos Es mejor utilizar la interfaz cuando varias implementaciones comparten รบnicamente 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 informaciรณn la interfaz no puede contener campos de datos. la clase puede tener campos de datos.
Valor predeterminado de herencia mรบltiple Una clase puede implementar numerosas interfaces. Una clase hereda solo un absolutotracclase t.
Implementaciรณn Una interfaz es absolutatracpara que no pueda proporcionar ningรบn cรณdigo. Un abstracLa clase t puede proporcionar un cรณdigo completo por defecto que debe ser sobrescrito.
Uso de modificadores de acceso No puede utilizar modificadores de acceso para el mรฉtodo, propiedades, etc. Puedes usar un abstracclase t que contiene modificadores de acceso.
Uso Las interfaces ayudan a definir las habilidades perifรฉricas de una clase. Un abstracLa clase t define la identidad de una clase.
Campos definidos No se pueden definir campos Un abstracLa clase t permite definir tanto campos como constantes.
Herencia Una interfaz puede heredar varias interfaces pero no puede heredar una clase. Un abstracUna clase puede heredar de una clase y de mรบltiples interfaces.
Constructor o destructores Una interfaz no puede declarar constructores ni destructores. Un abstracLa clase t puede declarar constructores y destructores.
Lรญmite de extensiones Puede ampliar cualquier nรบmero de interfaces. Puede extender solo una clase o un abstracuna clase a la vez.
Abstracpalabra clave t En un abstracLa palabra clave de interfaz t es opcional para declarar un mรฉtodo como un abstract. En un abstracclase t, el abstracLa palabra clave t es obligatoria para declarar un mรฉtodo como absoluto.tract.
Tipo de clase Una interfaz solo puede tener abs pรบblicostracmรฉtodos t. Un abstracLa clase t tiene abs protegidos y pรบblicostracmรฉtodos t.

Cรณdigo de ejemplo para Interface y AbstracClase t en Java

A continuaciรณn se muestra un cรณdigo de ejemplo para crear una interfaz y abstracclase t en Java

Sintaxis de la interfaz

interface name{
//methods
}

Java Ejemplo de interfaz:

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

AbstracSintaxis de clase t

abstract class name{
    // code
}

AbstracEjemplo de clase t:

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));
    }
}

Resumir este post con: