PHP面向对象中类的继承的使用
2010-11-13 08:08:23 来源:WEB开发网核心提示: php;"><?php class father{ protected $name; function __construct($name){ $this->name=$name; } function __destruct(){ echo "<p>{$th
php;"> <?php class father{ protected $name; function __construct($name){ $this->name=$name; } function __destruct(){ echo "<p>{$this->name}也是要死的<br/></p>"; } //这个就是所谓的构造函数,用来初始化 function go_to_sleeping(){ echo "<p>{$this->name}想睡觉.</p>"; } function eat(){ echo "<p>{$this->name}想吃饭.</p>"; } } class son extends father{ function playing(){ //小孩子会很调皮的,当然他也是要吃要睡的生物 echo "<p>{$this->name}正在捣蛋...</p>"; } } $your_father=new father("老爸"); $your_father->go_to_sleeping(); $your_father->eat(); $my_son=new son('宝贝'); $my_son->go_to_sleeping(); $my_son->eat(); $my_son->playing(); ?>
解析:在我们的第一个使用继承的范例里使用了PHP的构造函数中所提到的构造函数和PHP类的封装中的关键字,如果有什么不明白的就去看看吧!我可不想再多说了,中午没想睡觉呀.说说这段小程序吧。
在类的father里,我们定义了一般的特征,比如人的名字,人要吃饭和睡觉,然后在它的子类(后代)我们定义一个个性化的方法 (playing),毕竟人与人之间是有不同的地方吧。我们使用构造函数来初始化这个人名,当然也使用了析构函数来“消灭”掉对象,但你可能没有发现在子类里内是没有构造函数和析构函数的,所以子类是继承了父的所有方法,要不然你怎么能$my_son->go_to_sleeping();这样调用呢,这就是PHP类的继承了。
php;"> <?php class my_class{ var $username="小鸡"; var $num=10; function yingxiaoji(){ //使用类里的全局变量 $num=$this->num; $username=$this->username; echo "我养了".$num."条".$username; } function jiegou(){ //使用类中的函数时,用this直接引用 $this->yingxiaoji(); echo "全都卖了"; } } //php类的承 extends表示继承,但是php不允许同时继承多个基类 class my_class_extend extends my_class{ var $color="红色"; function mycolor(){ $color=$this->color; $username=$this->username; echo ",这只".$username."是".$color; } } $myname=new my_class(); //类的实例化 $myname->yingxiaoji(); echo "<br>"; //针对类中的变量重新赋值 $myname->username="小鸭子"; $myname->num="20"; $myname->yingxiaoji(); echo "<br>"; $myname->jiegou(); echo "<br>"; //初始化一个类的继承类 $myname_extend=new my_class_extend(); $myname_extend->jiegou(); $myname_extend->mycolor(); echo "<br>"; //由于是继承类,那么它的基类的属性全都有了,就可以直接给基类的变量传值 $myname_extend->username="小鸭子"; $myname_extend->num=100; $myname_extend->color="黑色"; $myname_extend->jiegou(); $myname_extend->mycolor(); ?>
更多精彩
赞助商链接