Javaの基礎:10、普通のクラスと抽象クラスの違いは?インターフェースと抽象クラスの違いは?抽象クラスは、抽象的でなければなりませんか?抽象クラスは、最終的にはそれを修正使用することができますか?(スーパーディテール)

1、普通のクラスと抽象クラスの違いは?

方法のいくつかは、抽象クラスを表現する抽象宣言前記抽象クラスは、抽象クラスを含む方法です。抽象クラスは、サブクラスはこのテンプレートを拡張することができ、テンプレートパターンです。抽象クラスでも恣意を避けるため、設計のサブクラスです。コードの設計と実装の分離を達成するために。

(1)抽象クラスは、オブジェクトの新しいインスタンスではなく、インスタンス化できません。
(2)限り抽象メソッドのクラスとして、抽象クラスとして定義されなければなりません。
(3)抽象クラスは、属性、方法、施工方法を含むことができます。しかし、サブクラスは、オブジェクトをインスタンス化するために使用されていない、コンストラクタを呼び出すことができます。
(4)は、抽象クラスの継承を使用することができ、及びサブクラス自体が抽象クラスでない限り、そのサブクラスは、抽象メソッドをオーバーライドしなければなりません。

注:抽象クラスでの一般的な方法があるかもしれません。抽象メソッドのみメソッドの宣言は、何のメソッド本体はありません。

図2に示すように、インタフェースと抽象クラスの違いは?

インターフェイスと抽象クラスは二つの機構抽象クラスの定義によってサポートされています。
方法のいくつかは、抽象クラスを表現する抽象宣言前記抽象クラスは、抽象クラスを含む方法です。
インターフェースは、すべてのメソッドは、メソッド本体されていないプロセスのコレクション、キーワード器具によって実現することです。定数と抽象メソッドのみをインタフェース。
同じ点(2点):
(1)抽象クラスとインタフェースをインスタンス化することができません。
これは(2)の後にインスタンス化され、抽象クラスのサブクラスは、インターフェイスのみ抽象クラスまたはインタフェースの方法で実現されて実装することができます。

異なる点(6点)
の定義と実装(1)
java8前に、あなただけのインターフェイスメソッドを定義することができ、実装インタフェース方式を実現することができる、唯一の実装クラスを達成することはできません。しかし、この方法は、抽象クラスの定義+を実装することができます。
(2)実装と継承。
実装とのインタフェースは、抽象クラスでは唯一の継承を拡張することができます。クラスは複数のインタフェースを実装することができますが、唯一の抽象クラスを継承することができます。したがって、インターフェースは間接的に多重継承の目的を達成することができます。
(3)デザイン。
アチーブメント機能、デザイン哲学のインターフェイス重点は:あり- ;抽象クラスは、所属、デザインコンセプトを強調:あります- 。
(4)は、メンバ変数とは異なります。
パブリック静的決勝へのインターフェイスメンバ変数のデフォルトは、唯一の静的データメンバーを変更することはできません持っており、それに初期値を割り当てる必要があります。
抽象クラスは、独自のデータメンバ変数を持つことができます。デフォルトの抽象クラスのメンバ変数のデフォルト、当然のことながら、また保護やプライベート、パブリックとして定義することができ、これらの変数のメンバーは、サブクラスで再定義することができ、それはまた、再割り当てすることができます。
(5)メンバメソッドを異なります。
インタフェースメソッドのメンバーは、唯一の公共の抽象することができ、かつ唯一の両方のキーワードを変更することができます。
非会員の方は、抽象クラスの抽象メソッドを持つことができます。抽象クラスの抽象メソッドは、(抽象修正が正面を持っている)プライベート、静的、同期、ネイティブの変更および他の修飾子を使用することはできません。セミコロンと同じ時間必見の終わりには、中括弧を持つことはできません。
(6)アプリケーション。
インタフェースは、将来のメンテナンスを容易またはdeleteメソッドを高めるために、より一般的な機能に使用されています。
抽象クラスは、より公共的な役割として機能するように傾斜している、それが修正されるコード内の後の再には適用されません。

その他の注意事項:
インターフェイスは抽象クラスの特別な種類です。インタフェースは、インタフェースを継承することができます。
抽象クラスは、抽象クラスは、特定のクラスを継承することができ、インターフェイスを実装することができます。抽象クラスは、静的なmainメソッドを持つことができます。

3、抽象クラスは、抽象的でなければなりませんか?

抽象クラス抽象修正(1)がなければなりません。
(2)は、抽象クラスの抽象メソッドを持っていません。
(3)抽象クラスクラスの抽象メソッドが存在する必要があります。

4、抽象クラスは、それを変更し、最終的に使用することができますか?

ではありません。
最終修正クラスに継承することはできません。
抽象クラスは、サブクラスはこのテンプレートを拡張することができ、テンプレートパターンです。抽象クラスでも恣意を避けるため、設計のサブクラスです。コードの設計と実装の分離を達成するために。これは、サブクラスによって実装される抽象メソッドです。抽象クラスのアプローチの最終変更は、抽象クラスの目的に反し。

公開された57元の記事 ウォン称賛13 ビュー1133

おすすめ

転載: blog.csdn.net/weixin_42924812/article/details/105053433
おすすめ