抽象のI.概要
1、由来
親クラスのメソッドは、そのサブクラスは、サブクラスそれぞれ異なる実装を持って書き換えています。そして、意味親クラスのメソッド宣言とメソッド本体は、唯一の文がありますが、意味のないメソッド本体はありません。
当社は、対象メソッドが呼び出されない方法がない抽象メソッドを。Java 構文の要件であるクラスの抽象メソッドを含んで抽象クラス。
2、の定義
-
- 抽象メソッド:なしメソッド本体のアプローチはありません。
- 抽象クラス:抽象クラスはメソッドが含まれています。
形式を使用して2つ、抽象
1、抽象メソッド
抽象メソッドとなっているキーワード抽象修飾法を使用し、抽象メソッドは、メソッド名、および無メソッド本体が含まれています。
定義フォーマット:
修飾子抽象戻り値の型メソッド名(パラメータリスト);
2、抽象クラス
クラスは抽象メソッドが含まれている場合、クラスは抽象クラスでなければなりません。
定義フォーマット:
クラス{の抽象クラス名
//メソッド本体
}
3、抽象的使用
サブクラスはの抽象クラスを継承すべての親クラス、抽象メソッドを書き換える必要があります。それ以外の場合は、サブクラスも抽象宣言する必要があります。
最終的には、そうでない場合、あなたは無意味親クラスのサブクラスの最終初期からオブジェクトを作成することはできません、親クラスの抽象メソッドのサブクラス実装がなければなりません。
デモ:
1匹の パブリック クラス猫延び動物{
2 公共 ボイドRUN(){
3 のSystem.out.println( "〜壁の上を歩いCAT" );
4 }
。5 }
。6 パブリック クラスCatTest {
7 パブリック 静的 ボイドメイン(文字列[ {]引数)
。8 // サブクラスオブジェクトを作成する
。9 猫= C 新しい新しい猫();
10 //はrunメソッドを呼び出す
。11 c.run();
12である }
13はである }
14 出力:
15匹の壁上を歩く子猫~~~
注意:この時点でオーバーライドされたメソッドは、親クラスの抽象メソッドの完全な実現のサブクラスである、我々はまた呼ばれるこの操作方法、書き直します実現を。
第三に、注意を払います
1、抽象クラスは、オブジェクトを作成することはできません作成した場合、が、コンパイラによってエラーが唯一の非抽象サブクラス内のオブジェクトを作成することはできません。
サブクラスのコンストラクタを持つことができる2、抽象クラスは、オブジェクトの作成に使用する親クラスのメンバを初期化することです。
図3に示すように、抽象クラスは、抽象メソッドは、必ずしも、しかしクラス抽象メソッド抽象クラスが存在しなければならないことはできません。
4、抽象クラスのサブクラスでは、抽象親クラスをオーバーライドする必要がありますすべての抽象メソッドサブクラスでも抽象クラスでない限り、そうでない場合、コンパイラによってエラーをしてすることはできません。