[修飾子] abstract class 抽象クラス名
{
// メンバーの定義
フィールドの宣言;
メソッドの定義
// 抽象メソッドの定義
abstract 戻り値の型 メソッド名(仮引数リスト); // 処理は定義しない
}
[修飾子] class クラス名 extends 抽象クラス名
{
// サブクラスに新たに追加するメンバーの定義
フィールドの宣言;
メソッドの定義
// オーバーライドメソッドの定義
戻り値の型 メソッド名(仮引数リスト)
{
文;
}
}
オブジェクト instanceof クラス名 // 結果は true または false
[修飾子] interface インターフェイス名
{
型名 フィールド = 式; // 必ず初期化する
戻り値の型 メソッド名(引数リスト); // 処理は定義しない
// コンストラクタは持たない!
}
[修飾子] class クラス名 implements インターフェイス名
{
// メンバーの定義
フィールドの宣言;
メソッドの定義
// オーバーライドメソッドの定義
public 戻り値の型 メソッド名(引数リスト)
{
文;
}
}
オブジェクト instanceof インターフェイス名 // 結果は true または false
public class ユーティリティークラス
{
private ユーティリティークラス() { throw new AssertionError(); } // デフォルトコンストラクタを抑制
public static final 型 定数名 = 値;
}
![]() |
![]() |
[修飾子] class クラス名 implements インターフェイス名1, インターフェイス名2, ...
{
// メンバーの定義
フィールドの宣言;
メソッドの定義
// インターフェイス1のオーバーライドメソッドの定義
public 戻り値の型 メソッド名(引数リスト)
{
文;
}
// インターフェイス2のオーバーライドメソッドの定義
public 戻り値の型 メソッド名(引数リスト)
{
文;
}
}
クラスと同様に、インターフェイスも拡張(extends)することができ、元になる既存インターフェイスをスーパーインターフェイス(superinterface)、新しいインターフェイスをサブインターフェイス(subinterface)と呼ぶ。
[修飾子] interface サブインターフェイス名 extends スーパーインターフェイス名1, スーパーインターフェイス名2, ...
{
}