Javaプログラムはいくつかのクラスによって作られている。
クラスを作る場合、初めから全て自分で作らなくても、別の人が作ったクラスやJavaで初めから用意されているクラスの機能(フィールドやメソッド)に新しい機能を追加して利用することができる。
このように、1つのクラスが持つメソッドとフィールドを他のクラスで引き継ぐことを継承という。
継承によって、メソッドとフィールドを他のクラスで引き継ぐことができるが、コンストラクタは継承されない。
そのため、コンストラクタはそれぞれのクラスで定義する必要がある。
継承の元となるクラスをスーパークラス又は親クラスと呼び、スーパークラスを継承するクラスをサブクラス又は子クラスという。
上位の(親)クラスは、下位の(子)クラスから見てスーパークラス又は親クラスと呼ばれ、下位のクラスは上位のクラスから見てサブクラス又は子クラスと呼ばれる。
クラスの継承は枝分かれしていく系統樹(ツリー構造)のように、上位クラスの情報を継承して下位のクラスを作ることができる。
以下にクラスの継承のツリー図を、『図形を描く』場合を例に示す。
図形を描く場合のツリー図を見て分かるように、全てのクラスには親クラスが存在し、一番根本になる親クラスをObjectクラスと呼ぶ。
Javaの全てのクラスは、元をたどればObjectクラスからできている。
特に継承しなくても、Javaの全てのクラスはObjectクラスという親を持つ。
クラスの継承は『親→子→孫』のように何層にもなった階層を持つことができる。
親→子→孫のような3つの階層がある場合、子クラスは親クラスの情報を継承し、さらに自分自身が追加した情報を持っている。
孫クラスは子クラスの情報を継承しているので、子クラスと親クラスの情報を継承しさらに自分自身が追加した情報を持つ。