#Java 抽象クラスとインターフェイスの違いは何ですか?
抽象クラス: Javaでは、abstractキーワードで変更されたクラスを抽象クラス、abstractキーワードで変更されたメソッドを抽象メソッドと呼びます。 have Methods. ステートメントのみで、メソッド本体はありません。抽象クラスの特性:
1. 抽象クラスはインスタンス化できず、継承のみが可能です;
2. 抽象メソッドを含むものは抽象クラスである必要がありますが、抽象クラスは必ずしも抽象を含むとは限りませんメソッド;
3. 抽象クラス内の抽象メソッドの修飾子は public または protected のみにすることができ、デフォルトは public です;
4. サブクラスが抽象クラスを継承する場合、サブクラスは親クラスの抽象メソッドを実装する必要があります。それ以外の場合は、サブクラスも抽象クラスとして定義する必要があります。
5. 抽象クラスには属性、メソッド、コンストラクターを含めることができますが、コンストラクターはインスタンス化には使用できず、主に以前はサブクラスによって呼び出されていました。
Interface: Java のインターフェイスは、interface キーワードで変更されます。特徴は次のとおりです:
1. インターフェイスには変数とメソッドを含めることができ、変数は次のように指定されます。 Hermit による public static Final. このメソッドは、Hermit (JDK1.8 より前) によって public abstract として指定されています;
2. インターフェイスは多重継承をサポートしています。つまり、1 つのインターフェイスが複数のインターフェイスを拡張でき、間接的に問題を解決します。 Java におけるクラスの単一継承の問題;
3. クラスは複数のインターフェイスを実装できます;
4. JDK1.8 のインターフェイスに新機能が追加されました:
デフォルト メソッド (デフォルト メソッド): JDK 1.8 では、非抽象メソッド実装をインターフェイスに追加できますが、デフォルト キーワードを使用して変更する必要があります。デフォルトを定義するメソッドを実装サブクラスで実装する必要はありません。 、ただし、サブクラスを実装するオブジェクトによってのみ呼び出すことができます。サブクラスの場合、クラスが複数のインターフェイスを実装し、これらのインターフェイスに同じデフォルト メソッドが含まれている場合、サブクラスはデフォルト メソッドをオーバーライドする必要があります;
static メソッド: JDK 1.8 では静的メソッドが許可されています。このキーワードはメソッドを変更し、インターフェイス静的メソッドと呼ばれる実装を提供します。インターフェイスの静的メソッドは、インターフェイス (インターフェイス名.静的メソッド名) を通じてのみ呼び出すことができます。
推奨チュートリアル: 「PHP チュートリアル」
以上がJava 抽象クラスとインターフェイスの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。