php 面向对象之继承、多态和静态方法
<?php //继承;子类可以继承父类的一切 //特点:单继承 //父类 class Ren { public $name; public $sex; public $yuyan; function Say() { echo $this->name."正在讲话!"; } } //美国人的子类 class America extends Ren { public $ziben; //子类对父类的方法重写 function Say() { parent::Say(); //调用父类的Say()方法 echo "hello !"; } } //中国人的子类 class China extends Ren { public $shehui; public $wumai; //对父类方法重写 function Say() { echo "你好!"; } } /*$c = new China(); $c->Say();*/ //var_dump($a); //多态 //条件:1.必须要继承。2.子类要对父类的方法进行重写。3.父类引用指向子类实例 //概念:当父类的引用指向子类实例的时候,由于子类对父类的方法进行了重写,父类引用在调用相应的方法的时候表现出来的不同。 /* Ren r = new China(); r->Say(); r = new Amreica(); r->Say();*/ $r = new America(); $r->Say(); $r = new China(); $r->Say(); ?>
<?php /*class FenBi { public $length; //属于对象的 public static $color='red'; //属于类的,静态 //返回数据库的连接对象 public static function LianJie() { FenBi::$color; return "连接对象"; } public function Test() { echo FenBi::$color; } }*/ /*FenBi::$color; FenBi::LianJie();*/ /* $r = new FenBi(); $r->Test();*/ //普通成员是属于对象的 //静态成员是属于类的 //普通成员方法里面可以调用静态成员 //静态方法里面不能调用普通成员 class Form { public static $bs=0; public function show() { echo "显示窗体"; } public function Close() { Form::$bs=1; echo "窗体关闭"; } public function shownext() { $f2 = new Form(); return $f2; } public function JianCe() { if(Form::$bs==0) { echo "F2没有关闭"; } else { echo "F2已经关闭"; } } } $f1 = new Form(); $f1->show(); echo Form::$bs; $f2 = $f1->shownext(); $f2->show(); $f2->Close(); echo Form::$bs; $f1->JianCe(); ?>