実際にクラスを使用するにはclassファイルが必要ですが、ソース ファイルが必要になるわけではありません。
DogandAnimalクラスの例を使用して可能性を見てみましょう。Dogクラスがクラスのサブクラスであると仮定するとAnimal、次のことができます。
Animal.classとの両方があればAnimal.java、Dogクラスを作成できます。
持っていても持ってAnimal.classいない場合は、クラスAnimal.javaを作成できます。Dog
持っていなくてAnimal.classも、クラスAnimal.javaを作成できます。Dog(これは、Animal.javaファイルのコンパイル時にファイルをコンパイルする必要があることを意味しますDog.java。)
どちらAnimal.classも持っていないと、クラスAnimal.javaを作ることができません。Dog
上記の表バージョンは次のとおりです。
Animal.java をお持ちですか? Animal.class はありますか? ドッグクラスは作れますか?
----------------- ------------------ --------------- ----
はい はい --> はい
はい いいえ --> はい
いいえ はい --> はい
いいえ いいえ --> いいえ
ファイルがある場合、ファイルを逆コンパイルして人間が読めるソース ファイルを生成classできるプログラムがありますが、ファイルの生成に使用された正確なソースを復元することはできません。classjavaclass
ただし、この場合、クラスを拡張しAnimalて新しいDogクラスを作成するだけであれば、ソースコード自体は必要ありません。
これを念頭に置いてください。Java で作成されたクラスは常にObjectクラスを拡張します。Objectクラスのソース コードにアクセスできなくてもObject.class、Java でアクセスできるため、独自のクラスを作成できます。
このケースも同様classです。クラス用のファイルがあれば、それを最大限に使用できます。欠けている唯一のものは、ソース コードにリストされている実際の実装です。