PHP では、抽象クラスは主に型の隠蔽とグローバル変数としての役割に使用されます。これらのクラスは、固定された一連の動作の抽象的な記述を構築できます。この一連の動作には、可能な限り、あらゆる特定の実装メソッドを含めることができます。 as クラス内に抽象メソッドがあり、このクラスは抽象クラスです。
この記事の動作環境: Windows 10 システム、PHP バージョン 7.1、Dell G3 コンピューター。
php での抽象クラスの用途について
抽象クラスは、問題領域の分析と設計から派生した抽象的な概念を表すためによく使用されます。それらは一見異なる一連のものですが、本質的には同じ具体的な概念を抽象化したもの。
抽象クラスは不完全です。基本クラスとしてのみ使用できます。オブジェクト指向のアプローチでは、抽象クラスは主に型を隠し、グローバル変数として機能するために使用されます。
オブジェクト指向メソッドでは、抽象クラスは主に型の隠蔽に使用されます。固定された一連の動作の抽象的な記述を構築しますが、この一連の動作には可能な具体的な実装を含めることができます。この抽象的な記述は抽象クラスであり、この可能な具体的な実装のセットは、可能なすべての派生クラスによって表されます。モジュールは抽象本体上で動作できます。モジュールは固定された抽象化に依存しているため、変更することはできません。同時に、この抽象化から派生することによって、このモジュールの動作機能も拡張できます。
操作例は次のとおりです。
<?php //抽象类像一个模板,供子类扩展(重写),抽象类里有普通方法(有方法体),也有抽象方法,其中抽象方法没有方法体,且以分号结束。 //只要有一个抽象方法,那么此类必须定义为抽象类。 //抽象类不能创建自己的实例,在试图创建抽象类对象时,会产生一个致使错误。 //在子类里实现抽象类的方法,并且可见性要等于、高于抽象方法的可见性,抽象类(public|protected|private),子类(public|public,protected|有致命错误,且不能被继承)。 //抽象类不能定义私有方法,可以定义私有属性。 //如果子类没有扩展(重写)抽象类的抽象方法,会产生致使错误。 abstract class Employees{ protected $name = null; function __construct($nameStr){ $this->name = $nameStr; } abstract public function work(); public function work1(){ echo "<p>$this->name</p>"; } //function __destruct(){} } class Managers extends Employees{ public function __construct($nameStr){ parent::__construct($nameStr); } /*public function work(){//如果子类没有扩展(重写)抽象类的抽象方法,会产生致使错误。 echo "<p>$this->name is working</p>"; }*/ } //$obj1 = new Employees();//创建抽象类对象时,会产生一个致使错误。 $obj2 = new Managers('e2'); //$obj2->work();
上記のコードを実行すると、次のエラー メッセージが表示されます:
致命的エラー: クラス マネージャーには 1 つの抽象メソッドが含まれているため、抽象メソッドを宣言するか、残りのメソッドを実装する必要があります (従業員:: work) D:\phproot \test\ClassDemo.php の 26 行目
エラー プロンプトの位置と最後のコード コメントを削除した後、次のコードに変更します:
<?php //抽象类像一个模板,供子类扩展(重写),抽象类里有普通方法(有方法体),也有抽象方法,其中抽象方法没有方法体,且以分号结束。 //只要有一个抽象方法,那么此类必须定义为抽象类。 //抽象类不能创建自己的实例,在试图创建抽象类对象时,会产生一个致使错误。 //在子类里实现抽象类的方法,并且可见性要等于、高于抽象方法的可见性,抽象类(public|protected|private),子类(public|public,protected|有致命错误,且不能被继承)。 //抽象类不能定义私有方法,可以定义私有属性。 //如果子类没有扩展(重写)抽象类的抽象方法,会产生致使错误。 abstract class Employees{ protected $name = null; function __construct($nameStr){ $this->name = $nameStr; } abstract public function work(); public function work1(){ echo "<p>$this->name</p>"; } //function __destruct(){} } class Managers extends Employees{ public function __construct($nameStr){ parent::__construct($nameStr); } public function work(){//如果子类没有扩展(重写)抽象类的抽象方法,会产生致使错误。 echo "<p>$this->name is working</p>"; } } //$obj1 = new Employees();//创建抽象类对象时,会产生一个致使错误。 $obj2 = new Managers('e2'); $obj2->work();
テスト実行結果:
e2 は動作しています
推奨学習: 「PHP ビデオ チュートリアル 」
以上がPHPでの抽象クラスの使用法は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ホットトピック









