PHP面向对象-继承详解讲述.docx

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档