-2

私は Java の初心者で、記事や本を読んだり、YouTube ビデオを見たりして学んでいます。最近、クラス抽象クラスという用語に出くわしましたが、それらが同じものかどうかは本当にわかりません。実際にそれらを比較した人は誰もいないようです。

私の質問は: それらは同じですか? そうでない場合、違いは何ですか?ありがとうございました!

4

6 に答える 6

1

Aclassと aabstract classは微妙な違いがあります。

aclassはインスタンス化してオブジェクトとして使用できますが、 aabstract classはインスタンス化できません。

を使用しabstract classて、共通クラスの一部の動作を抽象化します。

また、abstract class定義されているだけで実装されていない抽象メソッドを持つことができるのは a だけです。実装は のサブクラスで行われabstract classます。

他にもたくさんありますが、これは単純な答えには多すぎます。

于 2013-07-03T13:12:50.897 に答える
1

この状況でクラスを使用する理由abstractは、基本クラスを継承するすべての人に抽象doInitメソッドをオーバーライドさせるためです。クラスとメソッドが抽象化されていないと、そうすることを忘れる可能性があり、コンパイラはそれらをキャッチできません。

この実用的な目的に加えて、抽象クラスは、設計のアイデアをコードの読者に伝える強力な方法を提供します。抽象クラスは、モデリングしている単一の概念を実装するのではなく、内部のメソッドが関連するクラスのグループに共通の実装を提供することを読者に伝えます。多くの場合、読者に意図を伝えることは、正しいコードを書くことと同じくらい重要です。

Java では、抽象クラスを Abstract... と呼ぶのが通例です。あなたの例では、AbstractParent になります。

public abstract class Parent {
    public void init() {
       doInit();
    }
    public abstract void doInit();
}

public class Child extends Parent {
    public void doInit() {
       // implementation
    }
}
于 2013-07-03T13:13:44.850 に答える
0

抽象クラスは、抽象メソッドを含むクラスです。抽象メソッドは、実装なしで宣言されるメソッドです。よく見る場所は ここ

于 2013-07-03T13:14:11.207 に答える
0

抽象クラスは直接インスタンス化できないため、使用するにはサブクラス化する必要があります。詳細については、ドキュメントを参照してください。

于 2013-07-03T13:12:10.450 に答える