抽象クラスは、サブクラスの共通の特性を取得するために使用され、継承階層内のサブクラスのテンプレートを作成するために使用されます。実際には、各サブクラスのメソッドは確実に異なるため、親クラスにいくつかのメソッドを記述する必要はありません。その代わりに、コードを見ると次のことがわかるように、それを抽象クラスとして記述します。これは抽象メソッドであり、このメソッドがサブクラスにあることがわかりますが、クラスに実装されているため、即効性があります。
#1. 抽象クラスとは
オブジェクト指向の概念では、すべてのオブジェクトはクラスによって記述されますが、逆に、すべてのクラスがオブジェクトの記述に使用されるわけではありません。クラスに特定のオブジェクトを記述するのに十分な情報が含まれていない場合、そのようなクラスは抽象クラスです。 抽象クラスがオブジェクトをインスタンス化できないことを除いて、クラスの他の関数は引き続き存在します。メンバー変数、メンバー メソッド、およびコンストラクターには、通常のクラスと同じ方法でアクセスできます。 抽象クラスはオブジェクトをインスタンス化できないため、抽象クラスは使用する前に継承する必要があります。このため、通常は設計段階で抽象クラスを設計するかどうかを決定します。 親クラスにはサブクラスのコレクションの共通メソッドが含まれていますが、親クラス自体が抽象クラスであるため、これらのメソッドは使用できません。 Java では、抽象クラスは継承関係を表します。クラスは 1 つの抽象クラスのみを継承できますが、クラスは複数のインターフェイスを実装できます。2. なぜ抽象クラスを使用するのでしょうか?抽象クラスの用途は何ですか?
なぜ抽象クラスを参照する必要があるのかといつも疑問に思うのですが、普通のクラスで十分ではないでしょうか?一般クラスで定義されたメソッドはサブクラスでオーバーライドすることもできるため、抽象として定義する必要はありません。 実際、これは抽象クラスが何の役にも立たないと言っているわけではありません。一般クラスは確かにアプリケーションを満たすことができます。しかし、実際には、親クラスには記述する必要のないメソッドがいくつか存在します。各サブクラスのメソッドは確実に異なるため、親クラスに記述する必要はありません。もちろん、すべての抽象クラスを非抽象クラスとして記述することもできますが、これは必須ではありません。 そして、それを抽象クラスとして記述します。そうすれば、他の人があなたのコードを見たとき、またはあなたが他の人のコードを見たときに、抽象メソッドに注目し、このメソッドがサブクラスに実装されていることがわかるようになります。プロンプト機能です。3. 抽象クラスとインターフェイスの違い
抽象クラス
抽象クラスは次のとおりです。サブクラスの共通の特性を取得するために使用されます。インスタンス化することはできず、サブクラスのスーパークラスとしてのみ使用できます。抽象クラスは、継承階層内にサブクラスを作成するために使用されるテンプレートです。インターフェイス
インターフェイスは、抽象メソッドのコレクションです。クラスがインターフェイスを実装する場合、クラスはこのインターフェイスの抽象メソッドを継承します。これはコントラクト パターンに似ており、このインターフェイスを実装する場合は、これらのメソッドが使用されていることを確認する必要があります。インターフェイスは単なるフォームであり、それ自体では何もできません。 #抽象クラスとインターフェイスの比較
#抽象クラスとインターフェイスを使用する場合
いくつかのメソッドがあり、その一部にデフォルトの実装を持たせたい場合は、抽象クラスを使用します。
以上が抽象クラスの役割は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。