实例

/**

* 对象三要素之: 继承与多态

* 1. 继承是指类之间的继承,是代码复用的重要手段,之前我们是通过"函数"实现的代码复用

* 2. 继承使用关键字: extends

* 3. 引用父类成员: parent::

* 4. 子类可以将父类中的公共和受保护成员全部继承

*/

class Demo4

{

//父类属性

public $name;

protected $age;

private $salary;

const APP_NAME = '学生管理系统';

//父类构造器

public function __construct($name, $age)

{

$this->name = $name;

$this->age = $age;

}

//属性访问重载

public function __get($name)

{

if (isset($this->$name)) {

return $this->$name;

}

return '非法属性';

}

}

class Demo4_1 extends Demo4

{

//子类自有属性

private $sex;

const APP_NAME = '教师管理系统';  //类常量可以在子类中重写

//子类将父类同名方法进行重写,根据传入参数不同,实现不同的功能,这就是多态性

public function __construct($name, $age, $sex='male')

{

//        $this->name = $name;

//        $this->age = $age;

//引用父类的构造方法来简化代码

parent::__construct($name, $age);

$this->sex = $sex;

}

//将父类属性重载方法重写后,顺利读取子类属性

//所以属性重载方法__get()应该设置在最终工作类中(例如本类Demo4_1),而不是父类Demo4中

//此时,将父类Demo4中的__get()删除,代码执行仍然正确

public function __get($name)

{

if (isset($this->$name)) {

return $this->$name;

}

return '非法属性';

}

}

//当前类Demo4_1中即使没有任何成员,一样可以访问父类成员

$demo4_1 = new Demo4_1('peter', 80);

//访问父类中的属性

echo $demo4_1->name,'
';

echo $demo4_1->age,'
';

echo $demo4_1->salary,'
';   // 父类私有属性子类不可见,访问不到

echo Demo4_1::APP_NAME, '
';  // 访问类常量

echo $demo4_1->sex, '
'; //取不值,因为父类__get()不能识别子类属性

运行实例 »

点击 "运行实例" 按钮查看在线实例

php购物网站类的继承和多态,类的继承与多态相关推荐

  1. C++基础知识 —— 内存分区模型、引用、函数重载、类和继承、this指针、友元、多态、文件操作

       参考 黑马程序员 C++课程笔记,个人理解及整理  可以使用 在线编译c++代码 来简单验证.学习代码 目录 C++核心编程 1. 内存分区模型 1.1 程序运行前 1.2 程序运行后 1.3 ...

  2. 第九天2017/04/18(2、类的继承、面试题:继承访问修饰符、组合、static、构造、多态)

    继承:可以使用原来的代码,代码复用 多态:代码复用.接口复用,用基类的指针"根据对象"调用"指定对象的函数". 1.继承.访问修饰符//C++类成员的3种访问级 ...

  3. 【python】-- 类的继承(新式类/经典类)、多态

    继承 之前我们说到了类的公有属性和类的私有属性,其实就是类的封装,现在准备随笔的 是继承,是面向对象的第二大特性. 面向对象编程 (OOP) 语言的一个主要功能就是"继承".继承是 ...

  4. C++ day22 继承(二)基类指针数组通过虚方法实现智能的多态

    继承一共有三种: 公有继承 私有继承 保护继承 文章目录 公有继承 基类和派生类的关系 is-a(用公有继承表示"是一种"的关系) has-a uses-a is-like-a i ...

  5. Python类与对象最全总结大全(类、实例、属性方法、继承、派生、多态、内建函数)

    目录 面向对象编程 常用术语/名词解释 抽象/实现 封装/接口 合成 派生/继承/继承结构 泛化/特化 多态 自省/反射 访问限制 私有属性和公有属性 私有方法的设置 类 创建类 声明与定义 类属性 ...

  6. python2筑基-(封装/继承/多态/类属性)

    继承 单继承 """""" """ 在对象中,有种关系叫做父子关系 继承--子类拥有父类中定义的属性,函数语法 ...

  7. 【轻松学】Python面向对象编程——类的设计、基础语法、继承、多态、类属性和类方法、单例设计

    文章目录 1. 类的设计 大驼峰命名法 1.1 类名的确定 1.2 属性和方法的确定 练习 1.1 练习 1.2 2. 面相对象基础语法 2.1 定义简单的类(只包含方法) 2.1.1 定义只包含方法 ...

  8. python面向对象3-多层继承、super()、私有权限、多态、类属性实例属性、类方法和静态方法

    python面向对象1–类.对象.属性.魔法方法 python面向对象2–综合案例:烤地瓜.搬家具.单继承.多继承 python面向对象3-多层继承.super().私有权限.多态.类属性实例属性.类 ...

  9. Python之路-面向对象继承和多态类属性和实例属性类方法和静态方法

    一.面向对象 编程方式 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发"更快更好更强-& ...

最新文章

  1. 优雅的缓存解决方案--设置过期时间
  2. pythonista3使用教程-Pythonista中文文档:使用Pythonista
  3. 几种常用的优化方法梯度下降法、牛顿法、)
  4. WPF开源控件扩展库 - MaterialDesignExtensions
  5. java 内存指针_C指针和内存
  6. 谷粒学院【网上教育】总结
  7. 如何制作多语种发音词典?多语种发音词典的制作方法!
  8. 汇编语言学习笔记 - 杂记(寄存器,寻址方式,指令操作合法性)
  9. drupal mysql hash密码_drupal7 密码重置
  10. 白天黑夜模式切换引起的activity销毁重启
  11. 容联云通讯发送短信java实现
  12. stm32增量式编码器使用流程
  13. 四则运算——单元测试(测试方法:Right-BICEP )
  14. android 自定义view实现仿QQ运动步数进度效果
  15. 论文笔记-高速无人机网络MAC协议
  16. 那些年啊,那些事——一个程序员的奋斗史 ——121
  17. 调查:秋色园QBlog 博客开源不开源,您的建议是?
  18. GEP-vcc虚拟卡介绍以及虚拟卡特点
  19. 算法学习之算法的引入
  20. java mavlink_MAVLink笔记 #01# 维基百科翻译

热门文章

  1. ping 丢包 网络摄像头_利用Zabbix监控工具自动帮我们检测目标网络状况
  2. maven 分批打包_IDEA maven 多模块打包问题总结
  3. bzoj1024 [SCOI2009]生日快乐 结论+dfs
  4. Intel Core Enhanced Core架构/微架构/流水线 (7) - 栈指针跟踪器/微熔合
  5. C#语法之---多线程、并发与并行概念总结
  6. css里面的let,js中let和var定义变量的区别
  7. 个人计算机的缩写英语,计算机中常用的英语缩写
  8. 用三元操作符替代if-else以降低CPU分支预测惩罚实现Unity内函数13倍提速
  9. Predicate函数式接口
  10. C语言cJSON库的使用,解析json数据格式