●学校情報

講座一覧・募集状況

学習方法

学習サポート

修了生の評価

受講生の横顔

当学院について

入学相談

入学手続

 

●講座情報

技術者養成講座

プログラミング講座

WEB講座

情報処理試験講座

Excel講座

Access講座

 

●関連コラム

関連コラム

関連用語集

 

logo

 

 

関連用語集

共通の土台を定義する「抽象クラス(Abstract Class)」とは?

Javaのオブジェクト指向では、クラスを継承して機能を共有することができます。
その中でも抽象クラス(abstract class)は、共通処理と未定義の処理の両方を持てる特別なクラスです。

抽象クラスとは?

抽象クラスとは、インスタンス化できないクラスで、
一部のメソッドだけ名前だけを定義して中身を実装しない(抽象メソッド)という構造を持ちます。
主に複数のクラスに共通する機能の土台として使われます。

抽象クラスの構文

abstract class クラス名 {
    // 通常のメソッド(共通処理)
    void メソッドA() { ... }

    // 抽象メソッド(処理は継承先で定義)
    abstract void メソッドB();
}
    

例:Animal 抽象クラス

abstract class Animal {
    public void sleep() {
        System.out.println("眠ります。");
    }

    public abstract void makeSound();  // 抽象メソッド
}
    

継承して使う

class Dog extends Animal {
    @Override
    public void makeSound() {
        System.out.println("ワンワン!");
    }
}
    

実行例

public class Main {
    public static void main(String[] args) {
        Animal dog = new Dog();
        dog.sleep();       // 共通処理(親クラス)
        dog.makeSound();   // 個別処理(子クラス)
    }
}
    

抽象クラスの特徴

  • インスタンス化できない(newはできない)
  • 抽象メソッドを1つでも持つと、そのクラスはabstractにする必要がある
  • 共通処理と未定義の処理を両方持てる

抽象クラスとインターフェースの違い

項目 抽象クラス インターフェース
メソッド 共通処理(実装あり)も定義可 基本的にすべて抽象(Java8以降はdefaultあり)
継承の可否 1つのクラスしか継承できない 複数のインターフェースを実装できる
主な用途 共通ロジック+一部未定義 仕様の定義(APIの枠組み)

まとめ

抽象クラス(Abstract Class)は、共通処理と抽象的な定義を組み合わせた土台クラスです。
共通する機能は親クラスにまとめ、具体的な処理は子クラスで実装することで、柔軟な設計が可能になります。
インターフェースと使い分けながら、より理解を深めていきましょう!

 

Java関連用語集

−−−−−  Java  −−−−−

Javaの基本「クラス(Class)」とは?

Javaの基本「オブジェクト(Object)」とは?

Javaの処理を定義する「メソッド(Method)」とは?

Javaのデータを保持する「フィールド(Field)」とは?

Javaの「クラスの実体」インスタンス(Instance)とは?

クラスの再利用と拡張を実現!「継承(Inheritance)」とは?

オブジェクト指向の柔軟性!「多態性(Polymorphism)」とは?

データを守り、使いやすくする!「カプセル化(Encapsulation)」とは?

共通の土台を定義する「抽象クラス(Abstract Class)」とは?

クラスの共通ルールを定義する「インターフェース(Interface)」とは?

Javaのクラス整理箱「パッケージ(Package)」とは?

Javaで他のクラスを使う「import文」とは?

クラスやメソッドの公開範囲を制御する「アクセス修飾子」とは?

クラスに属するメンバーを定義する「static(静的)」とは?

値や定義を固定するキーワード「final(定数・変更不可)」とは?

エラーが起きても安全に!Javaの「try-catch(例外処理)」とは?

例外を発生させる / 伝える!「throw」と「throws」とは?

オブジェクトの初期化に使う「コンストラクタ(Constructor)」とは?

同じ名前で違う使い方ができる!「オーバーロード(Overload)」とは?

親クラスのメソッドを書き換える!「オーバーライド(Override)」とは?

自分自身を指し示す「thisキーワード」とは?

親クラスを扱う「superキーワード」とは?

クラスからオブジェクトを作る!「newキーワード」とは?

「何もない」を表す特別な値「null」とは?

複数のデータをまとめて扱う「配列(Array)」とは?

配列より便利!Javaの「コレクション(Collection)」とは?

Javaの3大コレクション型「List / Map / Set」ってなに?

コードをスッキリ書ける!「ラムダ式(Lambda Expression)」とは?

データを簡潔に処理!Javaの「Stream API」とは?

Javaをどこでも動かす「JVM(Java Virtual Machine)」とは?