クラスファイルはいくつのインターフェースを実装できますか?クラスファイルで使用されるインターフェイスの数に制限はありますか?前もって感謝します。
すべての実用的な目的のために、クラスが実装できるインターフェースの数に制限はありませんが、Javaでは、複数のスーパークラスから継承できません。
ただし、実際に細工したい場合は、クラスが実装できるインターフェースの数は、インターフェースIDの最大値(Javaバイトコード、またはコードの量)によって制限されていると言えますこれらのインターフェイスを実装するために必要なメモリ、またはバイトコードを格納するためのハードドライブ領域の量。これらはばかげた引数です。明らかに、コンピュータに無限メモリ、無限スループット、および無限コードスペースがないため、単一のjarに含めることができるコードの理論的な最大行数と同じように、すべての理論上の最大値。
ただし、クラスが実装できるインターフェースの理論上の最大数を本当に知りたい場合は、65535です。
Java VMの仕様 JVMの制限) から:
クラスまたはインターフェースの直接スーパーインターフェースの数は、ClassFile構造体のinterfaces_countアイテムのサイズによって65535に制限されます。
それが唯一の制限です。そして、それはコンパイルされたJavaバイトコードの構造によるものです。
この制限は、技術的というより実用的です。
手書きのコードの現実的な制限は数十にあります。生成されたコードについては、はるかに多く持つことができますが、その数が多すぎると、設計に問題があると思います。
ほとんどの大規模なプロジェクトのクラスは10K未満であるため、1つのクラスに多くのインターフェイスを実装する理由を想像するのは困難です。
クラスはInterfaces
を無制限に実装でき、1つのInterface
はInterfaces
を無制限に拡張できますが、あまり多くのインターフェースを実装しないことをお勧めします。