ホームページ  >  記事  >  バックエンド開発  >  PHP 開発中の継承の使用に関する共有_PHP チュートリアル

PHP 開発中の継承の使用に関する共有_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:28:10939ブラウズ

継承
通常、他の既存のクラスと同じ変数と関数を持つクラスが必要です。実際、すべてのプロジェクトで使用される共通のクラスを定義し、各特定のプロジェクトに適応するようにこのクラスを継続的に強化することは良い練習になります。これを簡単にするために、クラスを他のクラスから拡張できます。拡張クラスまたは派生クラスは、その基本クラスのすべての変数と関数を所有し (これは、誰も死なないことを除いて「継承」と呼ばれます)、派生クラスで定義されたすべての部分を含みます。クラス内の要素を減らすことはできません。つまり、既存の関数または変数を登録解除することはできません。拡張クラスは常に単一の基本クラスに依存します。つまり、多重継承はサポートされません。クラスを拡張するには、キーワード「extends」を使用します。

コードをコピー コードは次のとおりです:

class test {
public function __construct() {
}
public function name() {
$this->xname('ジョン') ;
}
プライベート関数 showName($name) {
echo 'テストでの私の名前は '.$name;
}
class extendTest extends test {
public function __construct() {
parent::__construct ();
}
private function showName($name) {
echo 'extendTest の名前は '.$name;
}
$test = new extendTest();
?> ;


上記の例では、Cart クラスのすべての変数と関数に加えて、追加の変数 $owner と追加の関数 set_owner() を含む、Named_Cart という名前のクラスを定義します。これで、名前付きショッピング カートが通常の方法で作成され、ショッピング カートの所有者を設定および取得できるようになります。通常のショッピング カート クラスの関数は、名前付きショッピング カート クラスでも引き続き使用できます:
$ncart = new Named_Cart; // 新しい名前付きショッピング カートを作成します
$ncart->set_owner(" kris"); // ショッピング カートに名前を付けます
print $ncart->owner // ショッピング カートの所有者の名前を出力します
$ncart->add_item("10", 1); // (ショッピング カートから継承された関数)クラス)
?>
これは「父と子」の関係とも言えます。クラス (親クラス) を作成し、extends を使用して親クラスに基づいて新しいクラス (子クラス) を作成します。この新しいサブクラスを使用して、このサブクラスに基づいて別のクラスを作成することもできます。
注:
クラスは定義された後にのみ使用できます。 Cart クラスを継承するために Named_Cart クラスが必要な場合は、最初に Cart クラスを定義する必要があります。 Named_Cart クラスに基づいて別の Yellow_named_cart クラスを作成する必要がある場合は、最初に Named_Cart クラスを定義する必要があります。簡単に言うと、クラス定義の順序は非常に重要です。



コードをコピーします
コードは次のとおりです: class Person{
protected $name;//保護されたアクセス許可はサブクラス内でアクセスできますが、外部からはアクセスできません
protected $age
; function __construct($name,$age,$sex){
$this->name=$name;//thisを使用する場合、nameが宣言されていない場合でも再度宣言されます
$this->age= $age ;
$this->sex=$sex;
echo "###############"
}
public function Say(){
echo "私の名前: { $ this->name}, 私の年齢 {$this->age}:, 私の性別: {$this->sex}
";
}
protected function Eat(){
echo "wwwwwwwwwwwwwwwww
";
}
function run(){
}
protected $name;//保護されたアクセス許可はサブクラス内でアクセスできますが、外部からはアクセスできません
protected $age
}
//Inherit
class Student extends Person{
var $school;
function __construct($name,$age,$sex,$school){
parent::__construct();//親クラスのコンストラクターメソッドを呼び出します
$this- >school=$school;
}
//say() メソッドをオーバーロードして拡張します
protected function Say(){//親クラスは public を使用し、サブクラスの権限を親クラスより低くすることはできません。飲めます 親クラスの権限は同じです
//person::say();//親クラスのsay()メソッドを呼び出します
parent::say();//親クラスのsay()メソッドを呼び出します親クラス。parent は親クラスの名前を表します。親クラス名が変更されたときに呼び出すこともできます。
echo "私の学校 {$this->school}
";//www.3ppt.com
}
function Study(){
echo "{$this->name} は Study<にあります;br/>";
}
}
$s=新入生("張さん",23,"男性");
$s->say();
$s->study() ;


* 1. オブジェクト指向の 3 つの大きな特徴の 1 つ
*
* 2. オープン性とスケーラビリティ
*
* 3. コードの再利用性の向上
*
* 4. ソフトウェアの保守性の向上
*
* 5. 継承サブクラスを使用して親クラスを「拡張」することです
*
* C++ は多重継承に属し、同じクラスは複数の親クラスを持つことができます
*
* PHP と JAVA は単一継承に属し、同じクラスは親クラスのみを持つことができます
*
* 多重継承、単一継承に関わらず、複数のサブクラスを持つことができます
*
* 2つのクラスを設計する際に共有できるメンバーがあれば、その共有内容をクラスの基本的な使い方として使用します
*
* 1 . クラス継承の応用
*
* 1. サブクラスを宣言し、extends キーワードを使用して親クラスを継承 (拡張)
*
* 2. サブクラスは親クラスからすべてを継承できます メンバーの属性メソッド、構築を含む内容メソッド...、サブクラスで使用できます
*
* 2. アクセス型制御
*
* サブクラスは親クラスからすべての内容を継承できますが、Private プライベート メンバーはこのクラスでのみ使用でき、サブクラスでは使用できません.
*
* カプセル化すると、自分のクラス内をアクセスできるようにするだけでなく、サブクラスからも利用できるようになりますが、クラス外で使用することはできません
*
*
*
* 3. サブクラスで親クラスのメソッドをオーバーロードします
*
* 1. サブクラスは親クラスと同じメソッド名を宣言できます。つまり、サブクラスは親クラスの同じ名前のメソッドをオーバーライドします
*
* 2. サブクラスのメソッドは親クラスのメソッドを拡張します
*
* 3. 親クラスでオーバーライドされたメソッドをサブクラスで呼び出します
* 親クラス名::メソッド名 ( ) を使用します 親::メソッド名()
*
* 4. 子クラスにコンストラクターを記述します。親クラスにコンストラクターがある場合は、必ず親クラスでオーバーライドされたコンストラクターを一度呼び出してください
*
* 注: 子クラス内のオーバーロードされたメソッドのアクセス許可は変更できません。親クラスのものよりも低い (サブクラスはアクセス許可を拡大できますが、アクセス許可を減らすことはできません)

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/323672.html技術記事通常、継承には、他の既存のクラスと同じ変数と関数を持つクラスが必要です。実際、すべてのプロジェクトに共通のクラスを定義し、このクラスを強化し続けて...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。