3

本 C++ Primer で、著者は次のように書いています。「OOP の背後にある重要なアイデアはポリモーフィズムです」。作者が何を言いたいのかよくわからない。他の重要なものについてはどうですか: 抽象化、継承など。誰か詳しく教えてください。

編集:「ポリモーフィズムとは」とは尋ねません。「なぜポリモーフィズムが OOP の鍵なのか」と尋ねています。継承が鍵ではないのはなぜですか?

4

3 に答える 3

2

それがOOP鍵かどうかはわかりません。それはただの誰かの意見です。

抽象データ型、カプセル化、継承、ポリモーフィズムの4つの鍵があると思います。彼らは一緒に属しています。

それぞれのアイデアは前のアイデアに依存します。ADTはそれ自体で立っている唯一のものです。カプセル化にはADTが必要です。ポリモーフィズムには継承が必要です。

ifポリモーフィズムは、、、switchおよびcaseステートメントを削除するのに役立ちます。オブジェクトタイプに基づいて何をすべきかを理解するためにコードを書く必要はありません。仮想テーブルは、舞台裏で適切なメソッドを呼び出すだけです。

于 2012-05-05T13:29:41.387 に答える
1

著者は、次の理由でこれを言っている可能性があります。

  1. クラス B が A から継承する場合、クラス B は A に型キャストできます ----> これはポリモロヒズムとも呼ばれます。したがって、継承は直接ポリモーフィズムを可能にします。

  2. A がインターフェース I*something* を実装すると、A は I*something* として動き回ることができます。これはポリモーフィズムとも呼ばれます。そのため、インターフェイスはポリモーフィズムを実現します。

  3. 抽象 : 抽象クラスは、インスタンス化できず、基本クラスとして機能する別のクラスです (一般的に)。非抽象子クラスは抽象クラスに型キャストできるため、多態性があります。

実際、OOP のほとんどの概念はポリモーフィズムと見なすことができ、この著者のおかげでそう言ったかもしれません。

于 2012-05-07T17:37:05.517 に答える
0

一般に、派生(抽象)クラス、実装されたインターフェイスなど、複数の形式を持つことができるオブジェクト(フィールド、メソッドなどを含む)を作成するという考え方です。

そして、もしあなたが最初にグーグルやウィキペディアなどに尋ねたとしたら、あなたはほんの数秒であなたの答えを得るでしょう;)

于 2012-05-05T13:18:26.150 に答える