つまりどころ〜
こんにちは。
Java Silver来年ほんきだす。
abstract
abstractとはクラスやメソッドを定義する際に付与することで、それらを抽象化することができる。
具現化(クラスであればインスタンス生成、メソッドであれば具体的な処理)することができなくなるよ。
クラスの場合
下記のようにabstract宣言されたクラスを直接インスタンス生成することはできない。
class Main {
public static void main(String[] args) {
Hoge hoge = new Hoge();
}
}
abstract class Hoge {
}
以下のようにabstractクラスを継承して使うよ。
class Main {
public static void main(String[] args) {
Fuga fuga = new Fuga();
}
}
abstract class Hoge {
}
class Fuga extends Hoge {
}
メソッドの場合
abstractメソッドは、具体的な処理を書かずにメソッドを定義したい場合に利用する。
class Main {
public static void main(String[] args) {
Fuga fuga = new Fuga();
fuga.run();
}
}
abstract class Hoge {
abstract public void run();
}
class Fuga extends Hoge {
public void run() {
// 処理
}
}
Hogeクラスで定義されたrunメソッドはabstract宣言されているので、FugaクラスでHogeクラスを継承したのであればrunメソッドは必ずオーバーライドする必要がある。
アウトプットして、ちしき固めていくぞ〜。