HOWTO · Java

修復 Java 無法例項化型別錯誤

如何修復無法例項化 Java 中的型別錯誤。

本頁內容

今天,我們將學習如何修復 Java 中的無法例項化型別錯誤的錯誤。

當你嘗試建立抽象類的例項時,會發生此類錯誤。讓我們學習一下 Java 中的抽象類。

修復 Java 中的無法例項化型別錯誤

當我們需要在其所有元件之間提供一些通用功能時,我們通常使用抽象類。你將能夠部分實現你的課程。

你將能夠生成所有子類都能夠覆蓋或實現的功能。但是,你不能例項化抽象類。

看下面的程式碼:

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

上面的抽象類 Account 不能被例項化。這意味著你不能編寫以下程式碼。

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

那麼,有什麼解決辦法呢?你可以建立此抽象類的具體/子類併為其建立例項。

例如,有很多型別的帳戶。它們可以是儲蓄、業務、借記卡等等。

但是,它們都是真實的帳戶,這是它們的共同點。這就是我們使用抽象方法和類的原因。

看看下面的程式碼。

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

BusinessAccount 類是抽象 Account 類的具體子類。你可以建立此類的例項並完成工作。

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

所以,結論是你不能例項化抽象類;相反,你可以建立它的子類並例項化它以實現相同的功能。

以下是可以在你的計算機上執行的完整程式碼。

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..........
  }
}

要了解有關抽象類的更多資訊,請單擊此處。