実際にクラスを使用するにはclass
ファイルが必要ですが、ソース ファイルが必要になるわけではありません。
Dog
andAnimal
クラスの例を使用して可能性を見てみましょう。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
できるプログラムがありますが、ファイルの生成に使用された正確なソースを復元することはできません。class
java
class
ただし、この場合、クラスを拡張しAnimal
て新しいDog
クラスを作成するだけであれば、ソースコード自体は必要ありません。
これを念頭に置いてください。Java で作成されたクラスは常にObject
クラスを拡張します。Object
クラスのソース コードにアクセスできなくてもObject.class
、Java でアクセスできるため、独自のクラスを作成できます。
このケースも同様class
です。クラス用のファイルがあれば、それを最大限に使用できます。欠けている唯一のものは、ソース コードにリストされている実際の実装です。