- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PHP面向对象-继承详解讲述
PHP继承
定义两个类:
class Book {
public $goods_name;
public $goods_price;
public $author;
public $publisher;
}
class Phone {
public $goods_price;
public $goods_name;
public $brand;
public $mode;
}
书与电话有共同的属性,可以提取
class Goods {
public $goods_name;
public $goods_price;
}
因此在书类与电话类中这两个属性可以不用写,但书与电话类中就已经没有了这两个属性
于是就用到了继承:
继承定义:如果一个对象A,使用了另一个对象B的成员,那么我们就称A对象继承了B对象
示例:
class Goods {
????public $goods_name;
????public $goods_price;
}
class Book extends Goods {
????public $author;
????public $publisher;
}
$b = new Book;
var_dump($b);
输出结果为:
object(Book)#1 (4) { [quot;authorquot;]=gt; NULL [quot;publisherquot;]=gt; NULL [quot;goods_namequot;]=gt; NULL [quot;goods_pricequot;]=gt; NULL }
语法:
使用关键字:extends 让一个类继承自另一个类
TIPS :?
继承概念体现在对象上,语法体现在类上
此时,特定的称谓:
以上的示例中:
Goods:称类为父类,基础类
Book:称为子类,扩展类
语法意义就是面向对象中的代码重用!
单继承
指的是,一个类,只能存在一个父类(基础类),不能同时继承多个类
下面的这种继承就是错误的:
class StoreBook extends Goods,Book {
????public $age = 3;
}
instanceof,是否是某类实例
体现:一个对象如果是子类的实例,同时也是父类的实例!(实例,通过该类实例化的对象)
重写,是个现象!
class Goods {
public $goods_name = ginvip;
public $goods_price;
}
class Book extends Goods{
public $goods_name = 《gin-php》;
public $author;
public $publisher;
}
$b1 = new Book;
var_dump($b1);
输出结果为:
object(Book)#1 (4) { [quot;goods_namequot;]=gt; string(13) quot;《gin-php》quot; [quot;authorquot;]=gt; NULL [quot;publisherquot;]=gt; NULL [quot;goods_pricequot;]=gt; NULL }
如果子类与父类出现同名的成员(属性方法),则在实例化子类对象时,只会得到子类中定义的成员,称之为重写!
方法也可以重写:
class Goods {
public $goods_name = ginvip;
public $goods_price;
public function SayPrice() {
echo $this-gt;goods_price;
}
}
class Book extends Goods{
public $goods_name = 《gin-php》;
public $author;
public $publisher;
public function SayPrice() {
echo amp;,$this-gt;goods_price;
}
}
$b1 = new Book;
$b1-gt;goods_price = 1234.15;
$b1-gt;SayPrice();
输出结果为:
amp;1234.15
一旦重写,父类的代码就不会执行!
但是,有些方法是一定会重写的,典型的是构造方法:
class Goods {
public $goods_name = ginvip;
public $goods_price;
public function __construct($name,$price) {
$this-gt;goods_name = $name;
$this
您可能关注的文档
- Origin软件使用指导讲述.docx
- Part+2+水平对准及陀螺系列实验讲述.docx
- oto运营模式的发展讲述.pptx
- 第1篇 复习综述.ppt
- Pascal公开课讲述.pptx
- pascal语言编程之if语句讲述.pptx
- PA车间安全检查表讲述.doc
- PAHs的污染与防治讲述.pptx
- PCBA检验判定标准讲述.doc
- PC100-E系列智能卡收费机使用手册V1.0.14.1015讲述.doc
- 2025年大学试题(管理类)-文书档案管理笔试考试历年典型考题及考点含含答案.docx
- 2023年度仓储管理人员自我提分评估附完整答案详解【典优】.docx
- 2024仓储管理人员检测卷附答案详解【夺分金卷】.docx
- 2023年度化验员过关检测试卷有完整答案详解.docx
- 2024-2025学年度化验员试题及完整答案详解【必刷】.docx
- 2025化验员题库试题附完整答案详解(各地真题).docx
- 2024-2025学年度仓储管理人员复习提分资料及参考答案详解(研优卷).docx
- 2024年化验员常考点试卷及答案详解(考点梳理).docx
- 2024-2025学年度化验员考前冲刺测试卷附答案详解【综合题】.docx
- 2024-2025学年度化验员检测卷及答案详解【名校卷】.docx
文档评论(0)