欢迎来到天天文库
浏览记录
ID:59253514
大小:141.63 KB
页数:17页
时间:2020-09-08
《PHP面向对象-继承详解.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、PHP继承定义两个类:classBook{public$goods_name;public$goods_price;public$author;public$publisher;}classPhone{public$goods_price;public$goods_name;public$brand;public$mode;}书与电话有共同的属性,可以提取classGoods{public$goods_name;public$goods_price;}因此在书类与电话类中这两个属性可以不用写,但书与电话类中就已经没有了这两个属性于是就用到了继承:继承定义:如果一个对象A,使用了另一个对象B的成
2、员,那么我们就称A对象继承了B对象示例:classGoods{ public$goods_name; public$goods_price;}classBookextendsGoods{ public$author; public$publisher;}$b=newBook;var_dump($b);输出结果为:object(Book)#1(4){["author"]=>NULL["publisher"]=>NULL["goods_name"]=>NULL["goods_price&
3、quot;]=>NULL}语法:使用关键字:extends让一个类继承自另一个类TIPS: 继承概念体现在对象上,语法体现在类上此时,特定的称谓:以上的示例中:Goods:称类为父类,基础类Book:称为子类,扩展类语法意义就是面向对象中的代码重用!单继承指的是,一个类,只能存在一个父类(基础类),不能同时继承多个类下面的这种继承就是错误的:classStoreBookextendsGoods,Book{ public$age=3;}instanceof,是否是某类实例体现:一个对象如果是子类的实例,同时也是父类的实例!(实例,通过该类实例化的对象)重写,是个现象!classGoo
4、ds{public$goods_name='ginvip';public$goods_price;}classBookextendsGoods{public$goods_name='《gin-php》';public$author;public$publisher;}$b1=newBook;var_dump($b1);输出结果为:object(Book)#1(4){["goods_name"]=>string(13)"《gin-php》"["author"]=>NULL["publisher"]=>
5、;NULL["goods_price"]=>NULL}如果子类与父类出现同名的成员(属性方法),则在实例化子类对象时,只会得到子类中定义的成员,称之为重写!方法也可以重写:classGoods{public$goods_name='ginvip';public$goods_price;publicfunctionSayPrice(){echo$this->goods_price;}}classBookextendsGoods{public$goods_name='《gin-php》';public$author;public$publisher;publicfu
6、nctionSayPrice(){echo'&',$this->goods_price;}}$b1=newBook;$b1->goods_price=1234.15;$b1->SayPrice();输出结果为:&1234.15一旦重写,父类的代码就不会执行!但是,有些方法是一定会重写的,典型的是构造方法:classGoods{public$goods_name='ginvip';public$goods_price;publicfunction__construct($name,$price){$this->goods_name=$name;$this-
7、>goods_price=$price;}}classBookextendsGoods{public$goods_name='《gin-php》';public$author;public$publisher;publicfunction__construct($author,$publisher){$this->author=$author;$this->publisher=$
此文档下载收益归作者所有