抽象クラスの役割は何ですか?

青灯夜游
リリース: 2020-11-30 11:33:50
オリジナル
29120 人が閲覧しました

抽象クラスは、サブクラスの共通の特性を取得するために使用され、継承階層内のサブクラスのテンプレートを作成するために使用されます。実際には、各サブクラスのメソッドは確実に異なるため、親クラスにいくつかのメソッドを記述する必要はありません。その代わりに、コードを見ると次のことがわかるように、それを抽象クラスとして記述します。これは抽象メソッドであり、このメソッドがサブクラスにあることがわかりますが、クラスに実装されているため、即効性があります。

抽象クラスの役割は何ですか?

#1. 抽象クラスとは

オブジェクト指向の概念では、すべてのオブジェクトはクラスによって記述されますが、逆に、すべてのクラスがオブジェクトの記述に使用されるわけではありません。クラスに特定のオブジェクトを記述するのに十分な情報が含まれていない場合、そのようなクラスは抽象クラスです。

抽象クラスがオブジェクトをインスタンス化できないことを除いて、クラスの他の関数は引き続き存在します。メンバー変数、メンバー メソッド、およびコンストラクターには、通常のクラスと同じ方法でアクセスできます。

抽象クラスはオブジェクトをインスタンス化できないため、抽象クラスは使用する前に継承する必要があります。このため、通常は設計段階で抽象クラスを設計するかどうかを決定します。

親クラスにはサブクラスのコレクションの共通メソッドが含まれていますが、親クラス自体が抽象クラスであるため、これらのメソッドは使用できません。

Java では、抽象クラスは継承関係を表します。クラスは 1 つの抽象クラスのみを継承できますが、クラスは複数のインターフェイスを実装できます。

2. なぜ抽象クラスを使用するのでしょうか?抽象クラスの用途は何ですか?

なぜ抽象クラスを参照する必要があるのか​​といつも疑問に思うのですが、普通のクラスで十分ではないでしょうか?一般クラスで定義されたメソッドはサブクラスでオーバーライドすることもできるため、抽象として定義する必要はありません。

実際、これは抽象クラスが何の役にも立たないと言っているわけではありません。一般クラスは確かにアプリケーションを満たすことができます。しかし、実際には、親クラスには記述する必要のないメソッドがいくつか存在します。各サブクラスのメソッドは確実に異なるため、親クラスに記述する必要はありません。もちろん、すべての抽象クラスを非抽象クラスとして記述することもできますが、これは必須ではありません。

そして、それを抽象クラスとして記述します。そうすれば、他の人があなたのコードを見たとき、またはあなたが他の人のコードを見たときに、抽象メソッドに注目し、このメソッドがサブクラスに実装されていることがわかるようになります。プロンプト機能です。

3. 抽象クラスとインターフェイスの違い

抽象クラス

抽象クラスは次のとおりです。サブクラスの共通の特性を取得するために使用されます。インスタンス化することはできず、サブクラスのスーパークラスとしてのみ使用できます。抽象クラスは、継承階層内にサブクラスを作成するために使用されるテンプレートです。

インターフェイス

インターフェイスは、抽象メソッドのコレクションです。クラスがインターフェイスを実装する場合、クラスはこのインターフェイスの抽象メソッドを継承します。これはコントラクト パターンに似ており、このインターフェイスを実装する場合は、これらのメソッドが使用されていることを確認する必要があります。インターフェイスは単なるフォームであり、それ自体では何もできません。

#抽象クラスとインターフェイスの比較

抽象クラスの役割は何ですか?#抽象クラスとインターフェイスを使用する場合

いくつかのメソッドがあり、その一部にデフォルトの実装を持たせたい場合は、抽象クラスを使用します。

    多重継承を実装する場合は、インターフェイスを使用する必要があります。 Java は多重継承をサポートしていないため、サブクラスは複数のクラスを継承できませんが、複数のインターフェイスを実装できます。したがって、インターフェイスを使用してそれを解決できます。
  • 基本的な機能が常に変化する場合は、抽象クラスを使用する必要があります。基本機能を変更し続けてインターフェイスを使用する場合は、インターフェイスを実装するすべてのクラスを変更する必要があります。
  • インターフェイスと 5 つの実装クラスがある場合、現在の要件はインターフェイスにメソッドを追加することである可能性があり、これには 5 つの実装クラスへの変更が必要になりますが、要件は実装のうち 2 つを変更するだけで済みます。再定義できるクラス 抽象クラスはこのインターフェイスを実装し、このメソッドを抽象クラスに追加し、その後、他の 2 つの実装クラスがこの抽象クラスを実装するか、Java 8 の新機能を使用してデフォルト メソッドまたは静的メソッドを追加します。インターフェース。
  • プログラミング関連の知識について詳しくは、
  • プログラミング学習
をご覧ください。 !

以上が抽象クラスの役割は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート