ホームページ バックエンド開発 PHPチュートリアル PHP の抽象クラスとインターフェイス

PHP の抽象クラスとインターフェイス

Jun 20, 2016 pm 12:32 PM

面接に行って詳しく聞かれると、多くのことを忘れてしまいます。

1. 抽象クラスとは

抽象クラスは、実際には親クラスのメソッドとある程度似ています。これにより、サブクラスが一部の関数を重複するのを防ぐことができます。違いは、抽象クラスは抽象メソッドを定義し、サブクラスは抽象メソッドを実装する必要があるため、仕様が固定されている状況に適しています。

2. 抽象クラス。特性

1. 直接インスタンス化することはできません。最初に継承してからインスタンス化する必要があります。 サブクラス

2. 抽象クラスには少なくとも 1 つの抽象メソッドが含まれている必要があります。他のメソッドはサブクラスによって直接継承され、オーバーライドできます。サブクラスは、抽象クラスで定義された抽象メソッドを実装する必要があり、メソッドの可視性は次のとおりです。抽象クラスのクラスと同じ (またはより緩和された)。抽象クラス内の抽象メソッドが protected と宣言されている場合、サブクラスに実装されているメソッドは protected または public として宣言する必要があり、private として定義することはできません

 // 强制要求子类定义这些方法 abstract protected function getValue(); abstract protected function prefixValue($prefix); // 普通方法(非抽象方法) public function printOut() {    print $this->getValue(); }
ログイン後にコピー
3. インターフェイス クラスとは

インターフェイスは仕様です。メソッドの実装を定義するものではありません。インターフェイスを実装する方法はあなたの仕事です

4. >
1. インターフェイス クラスのすべてのメソッドには宣言 (メソッド名の後にパラメーターが続く) のみが含まれており、メソッド本体を含めることはできません

2. インターフェイス クラスのすべてのメソッドは、実装するメソッド内に存在する必要があります。インターフェースクラスはすべて実装されており、1 つの実装が欠落している場合はエラーが報告されます

3. クラスは複数のインターフェースを実装でき、インターフェースはクラス継承が複数のクラスを継承できないという問題を解決できます
interface  SyncAccountInterface{    public function syncLogin($userId);    public function checkUsername($username, $randomName = '');}
ログイン後にコピー

5. 抽象クラスは次のとおりです インターフェイス クラスの類似点と相違点

1. 抽象クラスとインターフェイス クラスの両方に、サブクラスが実装する必要があるメソッドが含まれています。違いは、抽象クラスにはサブクラスが必要としない他のメソッドも含めることができることです。それらを実装するには、これらのメソッドを直接継承またはオーバーライドしますが、抽象としてマークされたメソッドを実装する必要があります。インターフェイス クラスは異なり、サブクラスはインターフェイス クラス内のすべてのメソッドを実装する必要があります。

2. クラスは 1 つのクラスのみを継承できますが、複数のインターフェイスを実装できます。したがって、ユースケースに応じて、抽象クラスとインターフェイスが必要になります。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Laravelでフラッシュセッションデータを使用します Laravelでフラッシュセッションデータを使用します Mar 12, 2025 pm 05:08 PM

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelテストでの簡略化されたHTTP応答のモッキング Laravelテストでの簡略化されたHTTP応答のモッキング Mar 12, 2025 pm 05:09 PM

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

PHPロギング:PHPログ分析のベストプラクティス PHPロギング:PHPログ分析のベストプラクティス Mar 10, 2025 pm 02:32 PM

PHPロギングは、Webアプリケーションの監視とデバッグ、および重要なイベント、エラー、ランタイムの動作をキャプチャするために不可欠です。システムのパフォーマンスに関する貴重な洞察を提供し、問題の特定に役立ち、より速いトラブルシューティングをサポートします

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

PHPにおける後期静的結合の概念を説明します。 PHPにおける後期静的結合の概念を説明します。 Mar 21, 2025 pm 01:33 PM

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 Mar 28, 2025 pm 05:12 PM

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

See all articles