Javaチュートリアル

Javaホーム Javaイントロ Javaはじめに Java構文 Javaコメント Java変数 Javaデータ型 Java型キャスト Java演算子 Java文字列 Java数学 Javaブール値 Java If ... Else Javaスイッチ JavaWhileループ JavaForループ Javaブレーク/続行 Java配列

Javaメソッド

Javaメソッド Javaメソッドパラメータ Javaメソッドのオーバーロード Javaスコープ Java再帰

Javaクラス

Java OOP Javaクラス/オブジェクト Javaクラス属性 Javaクラスメソッド Javaコンストラクタ Java修飾子 Javaカプセル化 Javaパッケージ/ API Javaの継承 Javaポリモーフィズム Java内部クラス Java抽象化 Javaインターフェイス Java列挙型 Javaユーザー入力 Java日付 Java ArrayList Java LinkedList Java HashMap Java HashSet Javaイテレータ Javaラッパークラス Javaの例外 Java RegEx Javaスレッド Javaラムダ

Javaファイル処理

Javaファイル Javaのファイルの作成/書き込み Java読み取りファイル Javaファイルの削除

Javaハウツー

2つの数字を追加する

Javaリファレンス

Javaキーワード Java文字列メソッド Java数学メソッド

Javaの例

Javaの例 Javaコンパイラ Java演習 Javaクイズ Java証明書


Java抽象化


抽象クラスとメソッド

データの抽象化は、特定の詳細を非表示にし、重要な情報のみをユーザーに表示するプロセスです。抽象化は、抽象クラスまたは インターフェース
のいずれかを使用して実現できます(これについては次の章で詳しく説明します)。

キーワードはabstract非アクセス修飾子であり、クラスとメソッドに使用されます。

  • 抽象クラス:オブジェクトの作成に使用できない制限付きクラスです(オブジェクトにアクセスするには、別のクラスから継承する必要があります)。

  • 抽象メソッド:抽象クラスでのみ使用でき、本体はありません。本体はサブクラス(から継承)によって提供されます。

抽象クラスは、抽象メソッドと通常のメソッドの両方を持つことができます。

abstract class Animal {
  public abstract void animalSound();
  public void sleep() {
    System.out.println("Zzz");
  }
}

上記の例から、Animalクラスのオブジェクトを作成することはできません。

Animal myObj = new Animal(); // will generate an error

抽象クラスにアクセスするには、別のクラスから継承する必要があります。ポリモーフィズムの章で使用したAnimalクラスを抽象クラスに変換してみましょう。

継承の章extendsから、クラスから継承するためにキーワードを使用していることを思い出してください。

// Abstract class
abstract class Animal {
  // Abstract method (does not have a body)
  public abstract void animalSound();
  // Regular method
  public void sleep() {
    System.out.println("Zzz");
  }
}

// Subclass (inherit from Animal)
class Pig extends Animal {
  public void animalSound() {
    // The body of animalSound() is provided here
    System.out.println("The pig says: wee wee");
  }
}

class Main {
  public static void main(String[] args) {
    Pig myPig = new Pig(); // Create a Pig object
    myPig.animalSound();
    myPig.sleep();
  }
}

抽象クラスとメソッドを使用する理由と時期

セキュリティを実現するには-特定の詳細を非表示にし、オブジェクトの重要な詳細のみを表示します。

注:抽象化は、インターフェースを使用して実現することもできます。これについては、次の章で詳しく説明します。