English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
主体を持たないメソッドを抽象メソッドと呼びます。それには半角コロンと前にある抽象キーワードのメソッドシグネチャ
public abstract myMethod();
抽象メソッドを使用するには、そのクラスを拡張し、実装を提供して継承する必要があります。
抽象メソッドを0個または複数含むクラスを抽象クラスと呼びます。抽象メソッドを少なくとも1個含む場合、それをabstractとして宣言する必要があります。
したがって、クラスのインスタンス化を直接阻止するには、それを抽象的に宣言することができます。
抽象クラスをインスタンス化することができないため、そのインスタンスメソッドにアクセスすることもできません。抽象クラスの静的メソッド(インスタンスが必要ではありません)のみを呼び出すことができます。
abstract class Example{ static void sample() { System.out.println("抽象クラスの静的メソッド"); } public void demo() { System.out.println("抽象クラスのメソッド"); } } public class NonStaticExample{ public static void main(String args[]) { Example.sample(); } }
出力結果
抽象クラスの静的メソッド
抽象クラスの非静的メソッドにアクセスする唯一の方法は、それを拡張し、抽象メソッド(あれば)を実装し、その子クラスのオブジェクトを使用して必要なメソッドを呼び出すことです。
abstract class Example{ public void demo() { System.out.println("抽象クラスのメソッド"); } } public class NonStaticExample extends Example{ public static void main(String args[]) { new NonStaticExample().demo(); } }
出力結果
抽象クラスのメソッド