抽象とJavaのインタフェースの違い

1.同じポイント
の両方A.は、抽象クラスはインスタンス化されていないです。
B.インタフェースの実装クラスとサブクラスabstrctclassはすでに抽象メソッドが達成されなければならないと宣言しています。

 

2.異なる点

A.インタフェースは、実装する必要が実装を使用して、抽象クラスを継承する必要があり、使用が拡張します。
B.クラスは複数のインターフェイスを実装することができますが、このクラスは抽象クラスを継承することができます。
C.インタフェースは、特定の機能を実現強調し、abstractclassは所属を強調します。
インタフェースの実装クラスD. abstrctクラスとサブクラスは、対応する抽象メソッドが、異なる形で実装する必要がありますが。インターフェースメソッドの各々は、単に宣言(宣言は、いかなる方法の本体が存在しない)、実装クラスが実装しなければならない抽象的です。Abstractclassとサブクラスを選択的に実装することができます。

この選択は2つの意味があります: 
    まず、Abastractクラスではないすべてのメソッドは抽象的であり、唯一のこれらのメソッドは、クラウンの抽象的で抽象的で、サブクラスが実装しなければならない持っています。これらの方法のいかなる抽象はAbstrctクラスのメソッド本体で定義されてはなりません。 
    第二に、非抽象メソッドの抽象継承時のクラスのサブクラスそれ、どちらかの直接の継承をもカバーすることができ、かつ抽象メソッドのために、あなたが実装することを選択することができ、また滞在し、達成する必要なしに、抽象的にそのアプローチを修正再表示することができますそのサブクラスを達成するために、これらは抽象クラスとして宣言する必要があります。どちらも抽象クラスは、もちろん、インスタンス化することはできません。 
E.抽象クラスは、クラスの仲介へのインタフェースです。 
メソッドインタフェースは、メソッドのみ宣言することができ、完全に抽象的である、とだけpulic宣言することができ、この方法は、プライベートと宣言し、保護することができず、メソッド本体を定義することはできません、私たちは、インスタンス変数を宣言することはできません。しかしながら、インタフェースが、一定の変数を宣言することができ、難しいJDKにそのような例を見つけること。しかし、インターフェースとしての役割に違反したインタフェースの定数変数は、目的が存在するが、また、クラスインターフェイスの異なる値を混同しました。実際に、必要に応じて、それぞれのabstractclassまたはクラスに配置することができます。 
抽象クラスは、インタフェースとクラスを接続する役割を果たしました。一方、被覆直接使用またはサブクラスのために、デフォルトのメソッド本体を定義することができる。一の態様では、抽象クラスが抽象であり、機能を実装しなければならないサブクラスを標準化する抽象メソッドを宣言することができます。サブクラスが継承によって使用するために加えて、あなたはまた、独自のインスタンス変数を定義することができます。

 

 

抜粋:https://blog.csdn.net/Mandypan/article/details/52138062

おすすめ

転載: www.cnblogs.com/peifengyang/p/11411022.html