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クラスを抽象クラスに変換しましょう。
例
// 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();
}
}
抽象クラスとメソッドを使用する理由と時期セキュリティを実現するには
オブジェクトの特定の詳細を非表示にし、重要な詳細のみを表示します。
ノート:抽象化は、インターフェースを使用して実現することもできます。こちらについては、次の章で詳しく説明します。
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。