物事を明確にするために、さらにいくつかのポイント、
データの抽象化と抽象クラスを混同してはなりません。それらは違う。
一般に、抽象クラスまたはメソッドは、基本的に何かを隠すものだと言います。しかし、いいえ..それは間違っています。アブストラクトとはどういう意味ですか?Google 検索によると、英単語の抽象化は意味します
「思考またはアイデアとして存在するが、物理的または具体的な存在を持たない」.
抽象クラスの場合もそうです。メソッドの内容を隠しているわけではありませんが、メソッドの内容はすでに空です (物理的または具体的な存在を持っていません) が、メソッドがどのようにあるべきか (思考またはアイデアとして存在するか)、またはメソッドが呼び出しにある必要があるかを決定します.
では、実際に抽象メソッドを使用するのはいつですか?
- 基本クラスのメソッドが、それを拡張する子クラスごとに異なる場合。
- したがって、子クラスにこの関数が実装されていることを確認する必要があります。
- これにより、メソッドが必須の署名を持つようにするには、n個のパラメーターが必要です。
では、抽象クラスについて!- 抽象クラスは、拡張のみではインスタンス化できません! しかし、なぜ ?
- クラス内の抽象メソッドには意味のある実装がないため、抽象メソッドを持つクラスは独自のインスタンスを作成しないようにする必要があります。
- 何らかの理由で、そのクラスのインスタンスを持つことがあまり意味がないことがわかった場合は、クラスを抽象化することもできます。
Abstract クラスは、その新しいインスタンスを作成するのを避けるのに役立ちます!
クラス内の抽象メソッドは、提供された署名で確実にその関数を実装するように子クラスに強制します!