HOWTO · Java
Java が Cannot Instantiate the Type 問題を修正
Java が Cannot Instantiate the Type 問題を修正
今日は、Java で Cannot Instantiate the Type というエラーを修正する方法を学びます。
このタイプのエラーは、抽象クラスのインスタンスを作成しようとしたときに発生します。Java の抽象クラスについて少し学びましょう。
Java の cannot instantiate the type エラーの修正
すべてのコンポーネントに共通の機能を提供する必要がある場合は、通常、抽象クラスを使用します。クラスを部分的に実装できるようになります。
すべてのサブクラスがオーバーライドまたは実装できる機能を生成できるようになります。ただし、抽象クラスをインスタンス化することはできません。
次のコードを見てください。
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..........
}
}
抽象クラスの詳細については、ここををクリックしてください。