Javaには「抽象クラス」と呼ばれる特殊なクラスがあります。抽象クラスは、不完全なクラスです。抽象クラスには「抽象メソッド」と呼ばれる、中身が未実装のメソッドが含まれています。また、抽象クラスには、抽象メソッド以外にも、完全なメソッドやフィールドを含めることが可能です。
抽象クラスは、そのままではプログラム中では使えません。抽象クラスは、継承して抽象メソッドを全て実装すると、初めて使えるクラスになります。またこの時、全ての抽象メソッドが実装されなかった場合は、さらにそのサブクラスで抽象メソッドを実装することになります。
抽象クラスには、クラスの頭に「abstract」が付きます。また、抽象メソッドも、メソッドの頭に「abstract」が付きます。
抽象クラスを継承したクラスでは、抽象メソッドが実装された場合は、abstractを取り除きます。また、全ての抽象メソッドがなくなったら、クラスのabstractを取り除きます。これでクラスが完成します。
以下、抽象クラスの実例を示します。
package sample; abstract public class SuperClass { public int n = 1; abstract public int getN2(); public int getN() { return n; } }
package sample; public class SubClass extends SuperClass { @Override public int getN2() { return n * 2; } }