設計の観点から見ると、「クラス継承」には2通りのやり方がある。1つは今まで見て来たような Java のクラス継承に関する言語的機能を使うものであることは当然である。もう1つは「委譲」と呼ばれ、形式的にはクラス継承ではないのだが、クラス継承とほぼ同様の効果を得ることができる。 あるクラスを継承する場合、普通にクラス継承(inherit)すれば次のようになる。 class Base { private int x, y; public int methodA( ) { ..... } /* このクラスは上書きされる */ public int methodB( ) { ..... } /* このクラスは上書きされない */ } class Delivered extends Base { public int methodA( ) { /* 基底クラスの上書き */ super.methodA