抽象メソッド対。仮想メソッド
1. 序章
オブジェクト指向プログラミングパラダイムの出現により、クラス、属性、およびメソッドに関する複数の機能がプログラマーに提供されました。
このチュートリアルでは、抽象メソッドと仮想メソッドの両方を調査します。最初に、オブジェクト指向パラダイムに関する基本的な概念を簡単に確認します。 次に、特に抽象メソッドと仮想メソッドについて学習します。 最後に、これらの概念を体系的に比較します。
2. 背景概念の簡単なレビュー
相互に関連するオブジェクトのコレクションを通じてコンピュータプログラムを理解することは、いくつかの機会をもたらします。 ただし、このパラダイムは多くの新しい課題ももたらします。
関連する課題の1つは、オブジェクトプログラミングパラダイムに対して提案された複数の類似した概念を吸収することです。 たとえば、類似点、相違点、および抽象メソッドと仮想メソッドの関係は、紛らわしい概念と見なされることがよくあります。
抽象メソッドと仮想メソッドを深く掘り下げる前に、オブジェクト指向パラダイムに関するいくつかの基本的な概念を覚えておきましょう。 したがって、私たちが心に留めておかなければならない最も関連性のある概念は、次のサブセクションにリストされています。
2.1. クラス
クラスは、データと関数の青写真として見ることができます。 クラスは、車などの実世界のオブジェクトを表す場合があります。 ただし、ネットワークソケットなど、現実の世界では具体的な表現がないものを表現することもできます。
2.2. 属性
W
2.3. 方法
オブジェクト指向プログラミングのコンテキストでは、メソッドは特定のクラスのプロシージャです。 簡単に言うと、これらはクラスを介して実行可能なアクションです。
2.4. 物体
最後に、オブジェクトはクラスのインスタンスです。 オブジェクトは、クラスで行われる計画を具体的にします。 それらを介して、通常、属性を操作し、メソッドを実行できます。
3. 抽象メソッドと仮想メソッド
まず第一に、抽象メソッドと仮想メソッドはどちらも、オブジェクトプログラミングパラダイムのコンテキストにおける従来のメソッドのバリエーションです。 このように、それらはクラスに対して計画されたアクションも表します。
ただし、抽象メソッドと仮想メソッドには、従来のメソッドと比較して、ほとんどの場合実装の点で異なる特性があります。 このセクションでそれらを調べてみましょう。
3.1. 抽象メソッド
要約すると、抽象メソッドは実装を必要としません。 したがって、クラスでそれらを宣言することしかできず、それらの署名(名前と引数)のみを提示することができます。
抽象メソッドは抽象クラスのコンテキストで宣言されます。抽象クラスは他のクラスに継承されます。 したがって、これらの他のクラスは、抽象クラスで定義された属性とメソッドの両方を使用できます。
ただし、継承された抽象クラスに1つ以上の抽象メソッドが含まれている場合、それを使用するプログラマーは、子孫クラスのコンテキストでこれらのメソッドを実装する必要があります。
したがって、抽象メソッドは、決定された機能が事前定義された引数で存在することを示すテンプレートとして見ることができます。 ただし、それらを継承するクラスの明確な必要性を考慮して実装されます。
次の画像は、抽象メソッドがどのように機能するかの簡単な例を示しています。
3.2. 仮想メソッド
仮想メソッドの実装は、抽象メソッドとは異なり、クラス内のシグネチャとともに提供されます。
これは、仮想メソッドが呼び出されたときに実行される一連のネイティブ操作を提供することを意味します。 したがって、継承関係の子孫のクラスのコンテキストで新しい実装を必要としません。
ただし、必須の実装は必要ありませんが、他のクラスを継承するクラスは、後者の仮想メソッドをオーバーライドできます。 したがって、降順のクラスは、昇順のクラスと同じ仮想メソッドのシグネチャを保持しますが、それらの操作を置き換えることができます。
したがって、抽象メソッドのような機能を定義することに加えて、仮想メソッドはこれらの機能を実装する標準操作も提供します。 これらの操作は、それらを継承するクラスの必要性に応じて置き換えることができます。
次の画像は、仮想メソッドの例を示しています。
3.3. 体系的な要約
つまり、抽象メソッドは、抽象クラスでメソッドシグネチャを提供する青写真と見なすことができます。 次に、1つ以上の抽象メソッドを使用して抽象クラスを継承するクラスを開発するプログラマーは、降順のクラスに抽象メソッドを実装する必要があります。
仮想メソッドは、署名と実装で提供されるメソッドです。 したがって、仮想メソッドを使用して別のクラスを継承するクラスは、実装作業なしで後者を実行できます。 ただし、プログラマーは、必要に応じて、降順クラスの仮想メソッドの実装をオーバーライドできます。
次の表は、抽象メソッドと仮想メソッドの主な違いをまとめたものです。
4. 結論
このチュートリアルでは、抽象メソッドと仮想メソッドについて学習しました。 最初に、オブジェクト指向プログラミングパラダイムに関するいくつかの背景概念を研究しました。 したがって、抽象メソッドと仮想メソッドの定義を調査しました。 最後に、体系的な要約で両方のカテゴリのメソッドを比較しました。
したがって、抽象メソッドと仮想メソッドは、オブジェクト指向プログラミングパラダイムの貴重なリソースであると結論付けることができます。 抽象メソッドと仮想メソッドはどちらも、このパラダイムの継承とポリモーフィズムの概念に強く関連しています。
さらに、これらのメソッドカテゴリは、プログラマーが降順のクラスを実装し、青写真とスケッチを提供するようにガイドします。