Java で静的メソッドを抽象化できない理由
Java プログラミングでは、静的メソッドを抽象化できません。抽象メソッドは、メソッドに宣言はあるが実装はなく、機能の提供はサブクラスに任せていることを意味します。ただし、静的メソッドは、オブジェクト インスタンスが作成されるかどうかに関係なく、本質的にクラス自体に関連付けられます。
次の例は、抽象静的メソッドの問題を示しています。
abstract class foo { abstract void bar(); //Reason:
抽象キーワードはメソッド宣言は存在するが実装が定義されていないことを暗示しているため、矛盾が生じます。メソッドが静的である場合は、オブジェクト インスタンスがなくても、クラスから直接呼び出すことができることを意味します。この概念は、メソッドが通常、オブジェクト インスタンスとその特定の状態に関連付けられるオブジェクト指向プログラミングの基本原則に違反します。
静的メソッドはクラス定義内に独自の実装があり、自己完結型で依存関係がありません。クラスのインスタンスについて。したがって、静的メソッドにはすでに実装が定義されているため、静的メソッドが抽象であることは意味がありません。
要約すると、静的メソッドの静的な性質は、メソッドを宣言せずにメソッドを宣言するという抽象的な概念と矛盾するため、静的メソッドを抽象にすることはできません。実装。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3