在php中,php类的继承是属于重要的内容也是属于比较难以理解的部分。那么我们该如何来学习PHP类的继承呢?和人类生活中的遗传一样,php编程世界中的继承就像是人类生世界中的遗传一样,这样是不是就好理解一点了呢。那么下面我们就来详细的分析一下php类的继承吧。
首先在了解了继承的一些活生生的原理后,我想再来看PHP类的继承是不是不再那么神秘。或许它本来就不神秘,是因为我们自己太复杂了吧。要有继承就得有一个“根源”,这“根源”你可能想像你以后生了儿子或者女儿,他们会从你这里得到一些“东西(属性和方法)”,这样你的“后代”就是持有你的(根源)所有一些特征了。下面通过语法来描述一下这个在PHP的面向对象中是怎么表达吧(不可能像人类那么直接啦,结婚,过段时间你的后代就产生了)
1.产生“根源”类(父类或者基类)
语法:
class father{ }
1.产生“后代”(子类)
语法:
class son extends father{ }
说明:父类只是一个平常的类,要想有后代你只需要在平常类后加一个extends关键字就OK了,这样你的子类只拥有了父类所有的属性和方法了。其实就是这么简单罢了。
下面让我们做点实际点事情吧,毕竟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 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类的继承了。
相关文章推荐:
Atas ialah kandungan terperinci php类的继承是什么意思?php类的继承的解析. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!