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. 子クラスにコンストラクターを記述します。親クラスにコンストラクターがある場合は、必ず親クラスでオーバーライドされたコンストラクターを一度呼び出してください
*
* 注: 子クラス内のオーバーロードされたメソッドのアクセス許可は変更できません。親クラスのものよりも低い (サブクラスはアクセス許可を拡大できますが、アクセス許可を減らすことはできません)
http://www.bkjia.com/PHPjc/323672.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/323672.html技術記事通常、継承には、他の既存のクラスと同じ変数と関数を持つクラスが必要です。実際、すべてのプロジェクトに共通のクラスを定義し、このクラスを強化し続けて...