Arreglar Java error Cannot Instantiate the Type

Haider Ali 12 octubre 2023
Arreglar Java error Cannot Instantiate the Type

Hoy, aprenderemos cómo corregir el error Cannot Instantiate the Type en Java.

Este tipo de error ocurre cuando intenta crear una instancia de una clase abstracta. Aprendamos un poco sobre clases abstractas en Java.

Se corrigió el error cannot instantiate the type en Java

Usualmente usamos una clase abstracta cuando necesitamos proporcionar algunas funcionalidades comunes entre todos sus componentes. Podrás implementar tu clase parcialmente.

Podrá generar funcionalidades que todas las subclases podrán anular o implementar. Sin embargo, no puede crear una instancia de la clase abstracta.

Mira el siguiente código:

abstract class Account { // abstract class Cannot Be initiated...
  private int amount;
  Account() {
    // constructor............
  }
  public void withDraw(int amount) {
    this.amount = this.amount - amount;
  }
}

La Account de la clase abstracta anterior no se puede instanciar. Lo que significa que no puede escribir el siguiente código.

Account acc = new Account(); // Abstract Cannot Intialized......

Entonces, ¿cuál es la solución? Puede crear una clase concreta / secundaria de esta clase abstracta y hacer una instancia de eso.

Por ejemplo, existen muchos tipos de cuentas. Pueden ser ahorros, negocios, débito y mucho más.

Sin embargo, todas son cuentas reales, y eso es algo que tienen en común. Por eso usamos métodos y clases abstractos.

Eche un vistazo al siguiente código.

class BusinessAccount extends Account {
  private int Bonus;
  public void AwardBonus(int amount) {
    this.Bonus = Bonus + amount;
  }
}

La clase BusinessAccount es una clase concreta y secundaria de la clase abstracta Account. Puede crear una instancia de esta clase y hacer su trabajo.

BusinessAccount bb = new BusinessAccount();
// Bussiness Account Can Be intiated Because there is concreate defination..........

Entonces, la conclusión es que no puede instanciar la clase abstracta; en su lugar, puede crear su clase secundaria e instanciarla para la misma funcionalidad.

El siguiente es un código completo que puede ejecutar en su computadora.

abstract class Account { // abstract class Cannot Be intiated...
  private int amount;
  Account() {
    // constructor............
  }
  public void withDraw(int amount) {
    this.amount = this.amount - amount;
  }
}
class BusinessAccount extends Account {
  private int Bonus;
  public void AwardBonus(int amount) {
    this.Bonus = Bonus + amount;
  }
}
public class Main {
  public static void main(String[] args) {
    // Account acc = new Account(); // Abstract Cannot Intialized......
    BusinessAccount bb = new BusinessAccount();
    // Bussiness Account Can Be intiated Because there is concreate defination..........
  }
}

Para obtener más información sobre la clase abstracta, haga clic aquí.

Autor: Haider Ali
Haider Ali avatar Haider Ali avatar

Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.

LinkedIn

Artículo relacionado - Java Error