抽象クラスとインタフェースを学ぶことは経験を比較します

抽象クラス
1.abstractクラス緩和は、一般的なクラスとインタフェースとの間に介在しています
2.クラスが1つ以上の抽象メソッドが含まれている場合、このクラスは、そうでない場合、コンパイラはエラーになり、abstractとして宣言する必要があります
3.あなたは、これは抽象クラス抽象メソッドでない場合であっても、抽象クラスのオブジェクトを作成することはできません。
それ以外の場合は、サブクラスもなされなければならない; 4.あなたがオブジェクトの新しいクラスを作成したい場合は、新しいサブクラスは、サブクラスで抽象クラスのすべての抽象メソッドを実装する必要があり、抽象クラスの場合から継承されました抽象的なキーワードは、抽象クラスを修正しました
あなたは持っているが、クラスの抽象メソッドを持ってする必要がない、とあなたは、そのクラスのすべてのインスタンスを防ぎたい場合に便利です。5.抽象クラスは、すべての抽象メソッドを含めることはできません

インタフェース
1.interfaceは決してありません実現するためのインターフェースで抽象化の抽象的な概念少しよりも純粋であり、インターフェースは、作成者は、メソッド名、パラメータリスト、戻り値の型、ないメソッド本体を決定することができます 
メソッドがデフォルトであるインターフェイスを定義し、あなたが公共のキーワードにしたものは何でもので、アクセス修飾子を追加する必要はありませ2.interfaceで定義された方法は、公開でなければなりません。あなたは、インターフェイスに抽象キーワードにしたかどうかメソッドの定義も抽象的である必要があり、デフォルトであり、これは非常に便利です!
デフォルトで修飾子フィールド値3.interfaceはまた、界面における文字列名=「張」の例えばよう定義、最終的な静的パブリックでなければならない;さらに改良剤なしのpublic static final修飾は、その名前は、最終パブリック静的です。
4.派生クラスは非インタフェースタイプから継承する場合は、唯一のクラスを継承することができ、残りは他のインタフェースでは、継承することができ、キーは、インタフェースの任意の数の後ろにカンマを使用するインタフェースを続けることができ実装します。あなたはアップキャスト任意のインターフェイスを派生クラスを置くことができます
5.両方のクラスが実装するクラスを継承し、implementsキーワードは、最初の書き込みとのインターフェースを実装し、その後書き込みにキーワードを拡張する場合に延び継承インタフェースまたはコンパイラエラーを実装するクラス。

実際の開発6.、私たちは、むしろ好ましいクラスのインターフェースよりも、有利なインターフェースではなく、抽象クラスを持っているインタフェースまたは抽象使用するために十分な理由を持っている必要があり、それ以外の場合は、リファクタリングが最も有用であるときにのみです
7.それは新しいインターフェースに新しいメソッドを継承することによって追加される、いくつかのインタフェースが新しいインタフェースを生成しても、組み合わせて使用​​されます。

おすすめ

転載: blog.csdn.net/baidu2030/article/details/42098863