Java における抽象静的メソッドの除外について
Java では、通常、抽象メソッドは実装するサブクラスのコントラクトを定義します。ただし、「抽象」の概念は「静的」メソッドの性質と矛盾します。
静的メソッドは、特定のオブジェクトではなくクラス自体にバインドされており、クラスのインスタンスを必要とせずに実行されます。 。この固有の機能は抽象原則と矛盾しており、実装が欠如していることを意味します。
次の例を考えてみましょう:
abstract class foo { abstract void bar( ); // Legal abstract static void bar2(); // Illegal }
この例では、bar() メソッドは抽象メソッドであり、次のことを示しています。サブクラスで実装する必要があります。ただし、bar2() メソッドは抽象メソッドと静的メソッドの両方としてマークされます。この組み合わせは次の理由から許可されません:
抽象メソッドはコードを持つことができないため、静的メソッドが暗黙的に示す機能と矛盾します。この論理矛盾により、Java での抽象静的メソッドの宣言が妨げられます。
以上がJava ではなぜ抽象静的メソッドが違法なのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。