インターフェイスと抽象クラスの違い【Java】
通常のクラスですと、いくつかフィールドや具象メソッドがあります。抽象クラスになると、少なくとも一つ以上の抽象メソッドが定義されます。
インターフェイスとは、クラスに含まれるメソッドの具体的な処理内容を記述せず、変数とメソッドの型のみを定義したものです。
抽象クラス自身にはabstract修飾子をつけて、継承するクラスにはクラス名の後にextends 抽象クラス名 をつけます。多重継承はできません。
インターフェイス自身にはinterface修飾子をつけて、実装するクラスにはクラス名の後にimplements インターフェイス名 をつけます。複数実装する時は、「,」区切りで並べます。
試験対策として、タイトルの「インターフェイスと抽象クラスの違い」として、以下の件を覚えておきたいです。
・インターフェイスにはインスタンスフィールドを定義できないが、抽象クラスには定義できる。
・インターフェイスには protected なメソッドを定義できないが、抽象クラスには定義できる。