Java基礎編------抽象類

1607 ワード

間の文章の中で継承は息子が父を継承するように、実は抽象類の思想は継承思想に似ていると言って、私たちは武侠小説の角度から抽象類の思想とは何かを解析します.郭靖が洪七公に降龍十八掌を学んだ時は一手一板一眼でおとなしく勉強し、師匠がどのように教え、弟子がどのように勉強したのか、これは継承に対応している.張無忌は張三豊のように太極拳法を学ぶ時、まず技を忘れてこそ、本当の太極拳法をマスターすることができ、その形ではなくその意を重視することができ、このような武学思想をプログラミングに映すのは抽象類である.
抽象クラスはオブジェクトをインスタンス化できないほか、クラスの他の機能は依然として存在し、メンバー変数、メンバーメソッド、構築メソッドのアクセス方法は通常のクラスと同じです.抽象クラスはオブジェクトをインスタンス化できないため、抽象クラスは継承されなければ使用できません.そのため、抽象クラスを設計するかどうかを設計段階で決定することが多い.
Java言語ではabstract classを用いて抽象クラスと抽象メソッドを定義し,抽象メソッドには具体的な内容がないことに注意し,その形ではなくその意味だけを求める思想を十分に体現している.基本構文のコード例を次に示します.
public abstract class TaiJiQuanFa
{
    public abstract void start();
}
public class ZhangWuJi extends TaiJiQuanFa {
	public void start() {
		System.out.println("            !");
	}
}
public class AbstractDemo
{
    public static void main(String[] args)
    {
        TaiJiQuanFa a = new ZhangWuJi();
        a.start();
    }
}

抽象クラスの思想と基本文法を理解した後、なぜ抽象クラスを使うのかを説明します. 
実は道理はとても簡単で、さっきの例で説明することができて、この武学の拳法は具体的な技がなくて、あなたは父類にどうしますか.の各サブクラスはこのメソッドを使用する必要がありますが、親メソッドはどのようにするのが最も一般的で問題がないか分かりません.それは抽象クラスで解決するしかありません.Java抽象クラスは抽象メソッドがクラスに書き換えられなければならないことを要求します.
抽象クラス仕様:
  • 抽象クラスはインスタンス化されず(初心者が犯しやすい間違い)、インスタンス化されるとエラーが報告され、コンパイルは通過できません.オブジェクトを作成できるのは、抽象クラスの非抽象サブクラスのみです.
  • 抽象クラスには必ずしも抽象メソッドが含まれているとは限らないが、抽象メソッドがあるクラスは必ず抽象クラスである.
  • 抽象クラスの抽象メソッドは宣言にすぎず,メソッド体を含まない,すなわちメソッドの具体的な実装,すなわちメソッドの具体的な機能を与えない.
  • 構築メソッドでは、クラスメソッド(staticで修飾されたメソッド)は抽象メソッドとして宣言できません.
  • 抽象クラスのサブクラスは、サブクラスが抽象クラスでない限り、抽象クラスにおける抽象メソッドの具体的な実装を与えなければならない.