PHP 对象继承和多态的实例
2013-05-20 20:39
344 查看
本例用MyObject类生成了两个子类:Book和Elec,两个子类用不同的构造方法实例化了两个对象c_book和h_elec,并输出信息
(1)子类继承了父类的所有成员变量和方法,包括构造函数。这就是继承的实现
(2)当子类被创建时,PHP会先在子类中查找构造方法。如果子类有自己的构造方法,PHP会优先调用子类的构造方法;当子类没有时,PHP则会调用父类的构造方法
(3)子类重写了父类的方法showMe(),所以两个对象虽然调用的都是showMe()方法,但返回的结果却是两个不同的信息 。这就是多态的体现
<?php /*父类*/ class MyObject{ public $object_name; //名称 public $object_price; //价格 public $object_num; //数量 public $object_agio; //折扣 function __construct($name,$price,$num,$agio){ $this -> object_name = $name; $this -> object_price = $price; $this -> object_num = $num; $this -> object_agio = $agio; } function showMe(){ echo '这句话不会显示。'; } } /* 子类Book */ class Book extends MyObject{ public $book_type; //类别 function __construct($type,$num){ $this -> book_type = $type; $this -> object_num = $num; } function showMe(){ return '本次新进'.$this -> book_type.'图书'.$this -> object_num.'<br>'; } } /* 子类Elec */ class Elec extends MyObject{ function showMe(){ return '热卖商品'.$this -> object_name.'<br>原价:'.$this -> object_price.'<br>特价:'.$this -> object_agio * $this -> object_price; } } /* 实例化对象 */ $c_book = new Book('计算机类',1000); $h_elec = new Elec('待机王XX手机',1200,3,0.8); echo $c_book->showMe()."<br>"; echo $h_elec->showMe(); ?>
(1)子类继承了父类的所有成员变量和方法,包括构造函数。这就是继承的实现
(2)当子类被创建时,PHP会先在子类中查找构造方法。如果子类有自己的构造方法,PHP会优先调用子类的构造方法;当子类没有时,PHP则会调用父类的构造方法
(3)子类重写了父类的方法showMe(),所以两个对象虽然调用的都是showMe()方法,但返回的结果却是两个不同的信息 。这就是多态的体现
相关文章推荐
- 2.0 面向对象 类与实例(关键字)、封装、继承、多态(虚方法,抽象类,抽象方法,接口)
- 类 对象 实例 方法 继承 封装 多态
- 类 对象 实例 继承 方法 封装 多态
- Python面向对象编程(类和实例 访问限制 继承和多态 获取对象信息 实例属性和类属性)
- java面向对象实例:小明去考试1.2.加入了继承多态
- PHP面向对象深入理解之二(封装、继承、多态、克隆)
- php 面向对象之继承、多态和静态方法
- (二)PHP面向对象理论2---魔术方法、继承、多态
- 一个经典实例理解继承与多态原理与优点(附源码)---面向对象继承和多态性理解得不够深刻的同学请进
- 实例讲解 封装继承多态(二)
- 面向对象封装,继承,多态(一)
- 1.面向对象基础(封装、继承、多态、抽象类)0711
- Java第四次作业--面向对象高级特性(继承和多态)
- OOP(2)类和对象,继承和多态
- php面向对象 自动加载类 对象串行化 多态的应用
- 设计模式学习(一):java 面向对象特征:抽象、封装、多态、继承
- PHP对象实例化
- 面向对象 【访问修饰符 】【封装】【继承】【多态】
- PHP面向对象程序设计方法实例详解
- JavaScript对象创建及继承原理实例解剖