\r\n\r\n

抽象クラスと具体的なクラスの違い

現代の一般的なオブジェクト指向プログラミング言語(javaやcなど)のほとんどは、クラスベースである。クラスを使って、カプセル化、継承、ポリモーフィズムなどのオブジェクト指向の概念を実装しています。クラスは、現実世界のオブジェクトを抽象的に表現したものです。クラスは、そのメソッド機能の実装レベルに応じて、具象または抽象にすることができます。具象クラスは、そのクラスのすべてのメソッドを完全に実装しています。抽象クラスは、通常の(具象)クラスの限定版とみなすことができ、部分的に実装されたメソッドを含むことができます。多くの場合、具象クラスは(ただの)クラスと呼ばれます...。

抽象クラスと具象クラス

現代の一般的なオブジェクト指向プログラミング言語(JavaやC言語など)の多くは、クラスベースである。クラスを使って、カプセル化、継承、ポリモーフィズムなどのオブジェクト指向の概念を実装しています。クラスは、現実世界のオブジェクトを抽象的に表現したものです。クラスは、その当事者**の能力の実装レベルに応じて、具象または抽象になることができます。具象クラスは、そのすべてのメソッドを完全に実装しています。抽象クラスは、通常の(具象)クラスの限定バージョンと考えることができ、部分的に実装されたメソッドを含むことができます。多くの場合、具象クラスは(単なる)クラスと呼ばれる。

具象クラスとは何ですか?

デフォルトのクラスは具象クラスです。クラスを定義するためにclassキーワードが使用されます(Javaなど)。通常、それらは単にクラスと呼ばれる(具体的な形容詞は付かない)。具体的なクラスは、実世界のオブジェクトの概念的な表現を記述する。クラスには属性と呼ばれるプロパティがあります。プロパティは、グローバル変数とインスタンス変数として実装されます。クラスのメソッドは、これらのクラスの振る舞いを表したり定義したりします。クラスのメソッドやプロパティをクラスのメンバと呼びます。一般的にカプセル化は、プロパティを非公開にする一方で、これらのプロパティにアクセスするために使用できるパブリックメソッドを作成することで実現されます。オブジェクトはクラスのインスタンスである。継承では、他のクラス(スーパークラスと呼ばれる)からクラス(サブクラスと呼ばれる)を拡張することができます。ポリモーフィズムにより、プログラマはあるクラスのオブジェクトをそのスーパークラスのオブジェクトに置き換えることができます。問題定義にある名詞がそのままプログラムのクラスとなることも多い。同様に動詞はメソッドになる。public, private, protectedはクラスの典型的なアクセス修飾子である。

抽象クラスとは何ですか?

抽象クラスは、Abstractキーワードを使って宣言します(Javaなど)。通常、抽象クラスは抽象基底クラス(ABC)とも呼ばれ、インスタンス化できない(そのクラスのインスタンスを作成できない)。したがって、抽象クラスは、プログラミング言語が継承(クラスを拡張してサブクラスを作成する機能)をサポートしている場合にのみ意味を持つ。抽象クラスは通常、抽象的な概念や実体を表し、部分的な実装を持つか、あるいは実装を持たない。したがって、抽象クラスはサブクラスが派生する親クラスとして機能し、そのクラスは親クラスの不完全な機能を共有し、それらを補完する機能を追加することができる。

抽象クラスは、抽象メソッドを含むことができます。拡張抽象クラスのサブクラスは、これらの(継承された)抽象メソッドを実装することができます。このような抽象的なメソッドをすべて実装すれば、そのサブクラスは具象クラスとなる。しかし、そうでない場合は、サブクラスも抽象クラスになってしまう。これらのことは、プログラマがクラスを抽象クラスと指定するとき、そのクラスは不完全であり、サブクラスから継承しなければ完成しない要素を持つことを意味しているのである。これは、2人のプログラマー間で契約を結ぶのに最適な方法で、ソフトウェア開発における作業を簡略化することができます。継承するコードを書くプログラマは、メソッドの定義に厳密に従う必要があります(もちろん、独自の実装を持つことも可能です)。

抽象クラスと具象クラスの違いは何ですか?

  • 2020-11-03 01:29 に公開
  • 閲覧 ( 25 )
  • 分類:IT

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ