・ extends と implements

extends と implements はクラスの継承に関連するキーワードです。
extends は新しいクラス定義のクラス名の後に現れます。 extends の直後の文字列は、スーパークラスとなるクラス名と解釈されます。 新しいクラスは、この指定されたクラスのサブクラスとして定義されます。
キーワード class によって新しいクラスを定義する場合、 extends の後に指定できるクラス名は 1個だけです。 インターフェイスではない すべての Javaのクラスは Object という共通のスーパークラスを持ちます。 extends が存在しない場合もスーパークラスが存在しないという意味ではなく、 extends Objetct を省略したものとして扱われます。 したがってキーワード class による定義の extends の後にインターフェイス名を 指定することは許されません。 インターフェイスは Objectのサブクラスではないからです。


class NewClass extends OldClass {

}

interface で新しいインターフェイスを定義する場合、 extends の後に指定できるインターフェイス名は複数あってかまいません。 インターフェイス名の間は , で区切ります。 もちろん extends の後に通常のクラス名を指定することはできません。


interface NewInterface extends Interface1,Interface2 {

}

implements も新しいクラス定義のクラス名の後に現れます。 implements の後の文字列は、組み込まれるインターフェイス名と解釈されます。 implements の後に指定できるのは、 インターフェイス名に限ります。
implements の後に来るインターフェイス名は複数あってもかまいません。 インターフェイス名の間は , で区切ります。


class NewClass extends OldClass implements Interface1,Interface2 {

}

Javaでは implements の機能を通じて多重継承を実現します。 ただし実装を持つスーパークラスは 1個しか許されません。