違い: 1. 抽象クラスは属性と通常のメソッドを持つことができますが、インターフェイスには持てません; 2. 抽象クラスには抽象メソッドは存在しない可能性がありますが、インターフェイスには「抽象」メソッドが必要です; 3. 構文:異なる; 4. 抽象クラスは、abstract キーワードでクラスより前に宣言されており、クラスとして宣言されている インターフェイスは、interface で宣言されているが、class では宣言できない; 5. 抽象クラスの抽象メソッドは、必ず必要インターフェイスは必須ではありません; 6. 抽象クラスとインターフェイスは、さまざまな方法で詳細なメソッドを実装します。
このチュートリアルの動作環境: Windows 7 システム、PHP 8 バージョン、DELL G3 コンピューター。
PHP における抽象クラスとインターフェイスの違い:
抽象クラス: はクラスに基づいており、それ自体がクラスであるだけです。 a 特別なクラスは直接インスタンス化できませんが、クラス内でメソッドと属性を定義できます。テンプレートと同様に、サブクラスも指定後、詳細な機能を実装できます。
インターフェイス: 主にメソッド仕様に基づいており、抽象メソッドよりも独立している点を除けば、抽象クラスの抽象メソッドに似ています。複数のメソッドを組み合わせることで、クラスを新しいクラスに結合できます。
抽象クラスとインターフェイスの類似点:
1. どちらも、特定のものを宣言し、名前とパラメーターを標準化し、モジュールを形成するために使用されます。詳細な説明、実装の詳細。
2. 関連する詳細な作業はクラスを通じて実装されます。
3. 文法的には、抽象クラスの抽象メソッドはインターフェイスと同じであり、メソッド本体を持つことはできません。 {} シンボル
4. 継承を使用できます。インターフェイスはインターフェイスを継承して新しいインターフェイスを形成でき、抽象クラスは抽象クラスを継承して新しい抽象クラスを形成できます。抽象クラスとインターフェイス:
1. 抽象クラスは属性と通常のメソッドを持つことができますが、インターフェイスは属性と通常のメソッドを持つことができません。定数を持つことができます。
2. 抽象クラスは、次のような場合があります。抽象メソッドはありませんが、インターフェイスは必須です。「抽象」メソッドが存在します3。構文が異なります4。抽象クラスは、abstract キーワードを持つクラスの前に宣言されます。クラスはクラスとして宣言され、インターフェイスはinterface で宣言されますが、インターフェイスはクラスではないため、class で宣言することはできません。 5. 抽象クラスの抽象メソッドは abstract で宣言する必要がありますが、インターフェイスはそうである必要はありません 6. 抽象クラスは extends キーワードを使用して、サブクラスが継承できるようにします親クラス。クラスは詳細な抽象メソッドを実装します。インターフェイスは実装を使用して、通常のクラスがクラス内のインターフェイスの詳細なメソッドを実装できるようにし、インターフェイスは一度に複数のメソッドを実装できます。各インターフェイスを区切るにはカンマを使用します。各機能:
抽象クラスには抽象メソッドは存在しない可能性がありますが、抽象メソッドを持つクラスは抽象クラスに存在する必要があります
- 抽象クラスでは、たとえそれらがすべて特定のメソッドでありインスタンス化できない場合でも、継承する新しいクラスを作成することによってのみ、インスタンスはクラスを継承できます。
- インターフェイスを使用すると、クラスは複数の異なるメソッドを一度に実装できます。 time
- インターフェイス自体は抽象ですが、インターフェイスはクラスではありませんが、そのメソッドは抽象であるため、抽象クラスではないことに注意してください。したがって、抽象的でもあります。
- 応用と組み合わせ:
以下のコードは私が独自に考えたものであり、実際には応用されていません。ただ、この書き方はちょっと変です。抽象化とインターフェースを組み合わせましょう。
1. 抽象クラスとインターフェイスの組み合わせ
<?php /* 写此程序源于自己的猜测,想在抽象类里实现某一接口。 */ interface work{ public function say(); } abstract class a implements work{ public function showlove(){ echo 'love you<br />'; } } class b extends a{ public function say(){ echo 'hello, i m in b'; } } $k=new b(); $k->say(); /* 以上程序能正常执行 普通类implements接口后,就变成了抽象类了,这就好像是直接给抽象类增加了一个抽象方法。 */2. インターフェイスと継承の組み合わせ
親class は通常の Class ですが、サブクラスが継承した後、同時にインターフェースもサブクラスに実装されます。
質問: このアプローチは意味がありますか? 実際の開発にそのようなアプリケーションはありますか?<?php interface kk{ public function say(); } class a { public function show(){ echo '我是父类<br />'; } } class b extends a implements kk{ public function say(){ echo '我是继承A类,同时实现say接口的<br />'; } } $b=new b(); $b->show();//我是父类 $b->say();//我是继承A类,同时实现say接口的
関連ビデオの推奨事項:
PHP プログラミングの入門から習熟まで以上がPHPの抽象クラスとインターフェースの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 中国語版
中国語版、とても使いやすい

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

ホットトピック









