本 C++ Primer で、著者は次のように書いています。「OOP の背後にある重要なアイデアはポリモーフィズムです」。作者が何を言いたいのかよくわからない。他の重要なものについてはどうですか: 抽象化、継承など。誰か詳しく教えてください。
編集:「ポリモーフィズムとは」とは尋ねません。「なぜポリモーフィズムが OOP の鍵なのか」と尋ねています。継承が鍵ではないのはなぜですか?
本 C++ Primer で、著者は次のように書いています。「OOP の背後にある重要なアイデアはポリモーフィズムです」。作者が何を言いたいのかよくわからない。他の重要なものについてはどうですか: 抽象化、継承など。誰か詳しく教えてください。
編集:「ポリモーフィズムとは」とは尋ねません。「なぜポリモーフィズムが OOP の鍵なのか」と尋ねています。継承が鍵ではないのはなぜですか?
それがOOPの鍵かどうかはわかりません。それはただの誰かの意見です。
抽象データ型、カプセル化、継承、ポリモーフィズムの4つの鍵があると思います。彼らは一緒に属しています。
それぞれのアイデアは前のアイデアに依存します。ADTはそれ自体で立っている唯一のものです。カプセル化にはADTが必要です。ポリモーフィズムには継承が必要です。
if
ポリモーフィズムは、、、switch
およびcase
ステートメントを削除するのに役立ちます。オブジェクトタイプに基づいて何をすべきかを理解するためにコードを書く必要はありません。仮想テーブルは、舞台裏で適切なメソッドを呼び出すだけです。
著者は、次の理由でこれを言っている可能性があります。
クラス B が A から継承する場合、クラス B は A に型キャストできます ----> これはポリモロヒズムとも呼ばれます。したがって、継承は直接ポリモーフィズムを可能にします。
A がインターフェース I*something* を実装すると、A は I*something* として動き回ることができます。これはポリモーフィズムとも呼ばれます。そのため、インターフェイスはポリモーフィズムを実現します。
抽象 : 抽象クラスは、インスタンス化できず、基本クラスとして機能する別のクラスです (一般的に)。非抽象子クラスは抽象クラスに型キャストできるため、多態性があります。
実際、OOP のほとんどの概念はポリモーフィズムと見なすことができ、この著者のおかげでそう言ったかもしれません。
一般に、派生(抽象)クラス、実装されたインターフェイスなど、複数の形式を持つことができるオブジェクト(フィールド、メソッドなどを含む)を作成するという考え方です。
そして、もしあなたが最初にグーグルやウィキペディアなどに尋ねたとしたら、あなたはほんの数秒であなたの答えを得るでしょう;)