ホームページ > バックエンド開発 > PHPチュートリアル > PHP 抽象クラスのルールを定義して適用する方法

PHP 抽象クラスのルールを定義して適用する方法

WBOY
リリース: 2016-07-25 08:44:08
オリジナル
1014 人が閲覧しました
PHP の学習に熱心に取り組んでいる友人 (http://www.maiziedu.com/course/php/) にとって、理解して習得するのが最も難しい知識は、PHP の抽象アプリケーションであるはずです。私は初心者のため、まだオブジェクト指向の知識を使ってプログラミングを行ったことはありませんが、今後 PHP を開発する場合、クラスを使用してカプセル化したり、インターフェイスを使用してさまざまなモジュール形式でプログラムを開発したりすることは避けられません。
PHP では、クラスの一般的な動作を示すためにクラスを抽象化します。このクラスは、そのサブメソッドが実装する必要があるいくつかの動作を示すテンプレートである必要があります。
PHP 抽象クラス アプリケーションの定義:
抽象クラス ClassName{
}
PHP 抽象クラス アプリケーションの重要なポイント:
1. いくつかのメソッドを定義します。サブクラスはこの抽象化のすべてのメソッドを完全に実装する必要があります
2. 抽象クラスからオブジェクトを作成することはできません。その意味は拡張される必要があります
3. 抽象クラスには通常、抽象メソッドが含まれており、メソッド内に中かっこはありません
PHP 抽象クラス アプリケーションのフォーカス:
1. 抽象メソッドは特定の関数を実装する必要がなく、サブクラスによって完成されます
2. サブクラスが抽象クラスのメソッドを実装する場合、サブクラスの可視性は抽象メソッドの定義以上である必要があります
3. 抽象クラスのメソッドはパラメータを持つことも、空にすることもできます
4. 抽象メソッドにパラメータがある場合、サブクラスの実装にも同じ数のパラメータが必要です
PHP 抽象クラスのアプリケーション例:
abstract public function_name(); //中括弧がないことに注意してください
PHP 抽象クラスのルール:
1. クラスに少なくとも 1 つの抽象メソッドが含まれている限り、それは抽象クラスとして宣言される必要があります
2. 抽象メソッドには関数本体を含めることはできません
3. 抽象クラスのサブクラスを継承して抽象メソッドを実装するには、抽象メソッドと同じかそれ以下のアクセス レベルが必要です
4. 抽象クラスのサブクラスを継承します。すべての抽象メソッドが実装されていない場合、そのサブクラスも抽象クラスです
デモとして、長方形の面積を計算する単純な抽象クラスを実装してみましょう。この長方形は形状クラスから拡張できます。
抽象クラス Shape {
抽象保護関数 get_area(); //一般的なメソッドとは異なり、このメソッドには中括弧がありません
//この抽象クラスのインスタンスは作成できません: $Shape_Rect= new Shape(); }
クラス Rectangle は Shape を拡張します{
プライベート $width
プライベート $身長
関数 __construct($width=0,
$高さ=0){

$this->width=$width
$this->height=$height;
}
関数 get_area(){
エコー ($this->幅+$this->高さ)*2; }
}
$Shape_Rect = 新しい長方形(20,30); $Shape_Rect->get_area(); ?>
これも単純な例であり、基本的に PHP での抽象クラスの使用法を示しています。残りについてはこれ以上説明しません。個人的には、抽象クラスは一般に大規模なプロジェクトで使用されると思います。なぜなら、抽象クラスには遵守すべき「ルール」が多すぎて使いにくいと思うからです。もちろん、これは単なる私の意見です。さらにいくつか言いたいことがあります。PHP 抽象クラス アプリケーションは単一継承です。つまり、1 つのクラスからのみ継承できますが、クラス A とクラス B を継承する 1 つのクラスは継承できません。そのような関数を実装したい場合。 、インターフェイスを使用する必要があります。関連する知識については、当面は PHP インターフェイスの知識については説明しません。一言で言えば、単一の継承と複数のインターフェイスです。




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