インタフェース、抽象クラス、抽象メソッド

1539 ワード

インタフェース:
1、インタフェースは実はいくつかの定数と抽象的な方法の集合である.
2、インタフェースはinterfaceキーワードを使用して宣言され、特殊な抽象クラスと見なすことができ、クラスがどのようにしなければならないかを指定するのではなく、どのようにするかを指定することができます.
3、インタフェースは実は“特殊”の抽象クラスです:インタフェースの中のメンバーの変数はすべて定数で、更にその初期値を変えることができません;しかもメンバーの変数のデフォルトはすべてpublic static finalで、表示しなければならない初期化、一般的に省略します.
インタフェースの中の方法はすべて抽象的な方法で、それは他のインタフェースが必要です
4、インタフェースはクラスの継承フォーマットと同様に、インタフェースと間も継承でき、サブインタフェースは親インタフェースの定数と抽象メソッドを継承し、新しい抽象メソッドを追加することができるなど.しかし、クラスでインタフェースを継承し、抽象的な方法を実現することができます.キーワードでimplements;
フォーマット:classクラス名extends親クラスimplements複数インタフェース{実装方法}
5、インタフェースには構造方法がなく、インタフェースをインスタンス化できない.
6、インタフェースがインタフェースを継承する場合、前のインタフェースの方法は実現できないが、複数のインタフェースを継承することができ、インタフェースのマルチ継承の特徴はクラスの単一継承を補う.
 
抽象クラス:
1、抽象的なクラスまたはメソッドはabstract修飾子で抽象的なメソッドと抽象的なクラスを表し、抽象的なクラスにもメンバー変数が含まれ、同じようにabstractで修飾します.
2、クラスは抽象メソッドを含まなくても抽象クラスとして宣言され、インスタンス化されないようにする.抽象メソッドはサブクラスで実装されなければならない.
3、抽象的な方法を持つクラスは、このクラスも抽象化されなければならない.
注意:a、抽象クラスは直接使用することはできません.抽象クラスをサブクラスで実装し、そのサブクラスのインスタンスを使用する必要があります.
b、抽象構造方法や抽象静的方法はできない.
4、クラスが抽象クラスのサブクラスであり、いかなる抽象方法にも実現の詳細や方法主体を提供できない場合.これはこのクラスも抽象クラスでなければなりません.
5、抽象的な方法を含むクラスは抽象的なクラスに違いない」が正しい.逆のエラー.
abstract class People{}    // abstract classstudents(){}//