PHP面向对象三大特点学习

class B extends A{

public function __construct(){

//两种方法都行

A::test();

parent::test();

}

}

$b=new B();

5、如果一个子类(派生类)的方法与父类的方法完全一样时(public,protected),我们称为方法覆盖或方法重写(override),看下面的多态性

三、多态性

例 :

复制代码 代码如下:

class Animal{

public $name;

public $price;

function cry(){

echo 'i don\'t know';

}

}

class Dog extends Animal{

//覆盖、重写

function cry(){

echo 'Wang Wang!';

Animal::cry();//这里不会报错,能正确执行父类的cry();

}

}

$dog1=new Dog();

$dog1->cry();

?>

小结:

1、当一个父类知道所有的子类都有一个方法,但是父类不能确定该方法如何写,可以让子类去覆盖它的方法,方法覆盖(重写),必须要求子类的方法名和参数个数完全一致

2、如果子类要去调用父类的某个方法(protected/public),可以使用 父类名::方法名 或者 parent::方法名

3、在实现方法重写的时候,访问修饰符可以不一样,但是子类方法的访问权限必须大于等于父类方法的访问权限(即不能缩小父类方法的访问权限)

如 父类public function cry(){} 子类 protected function cry(){} 则会报错

但是子类的访问权限可以放大,如:

父类private function cry(){} 子类 protected function cry(){} 可以正确执行

扩展:

方法重载(overload)

基本概念:函数名相同,但参数的个数或参数的类型不同,达到调用同一个函数,可以区分不同的函数

在PHP5中虽然也支持重载,但是和其它语言还是有很大区别的,php中不能定义多个同名函数

PHP5中提供了强大的“魔术”函数,使用这些魔术函数,我们可以做到函数重载,

这里我们要到到 __call,当一个对象调一个方法时,而该方法不存在,则程序会自动调用__call

【PHP面向对象三大特点学习】相关文章:

php 面向对象 特性,PHP面向对象三大特点学习相关推荐

  1. java面向对象特性_java面向对象编程三大特性

    一说到java面向对象编程就想到面向对象的三大特性,封装,继承和多态,下面我们来具体分析以下这三大特性在编程中是如何具体体现的. 封装 将类的属性和具体实现细节隐藏,只提供相关的接口和方法来对隐藏信息 ...

  2. python面向对象编程的三大特性_Python面向对象总结及类与正则表达式详解

    Python3 面向对象 -------------------------------------------------------------------------------- 一丶面向对象 ...

  3. javascript 的面向对象特性参考

    最近在看用javascript+css实现rich client.javascript 也是一个蛮有意思的语言.特别是其面向对象的实现和其他"标准"的OO launguage有很大 ...

  4. Python基础复习09_面向对象特性

    面向对象特性 1. 继承 Outline ·继承概念 ·单继承/多继承 ·子类重写/调用父类的同名属性和方法 ·多层继承 ·super() ·私有属性和私有方法 1.1 继承的概念 继承指的是多个类之 ...

  5. 面向对象的特性(面向对象的多态性:转型,重载与重写)

    对于面向对象的特性,一般有两种说法:一种是三大特性,分别是封装,继承,多态,另外一种是封装,继承,多态,抽象:需要注意的是:这是面向对象的特性,不是java的特性(面向对象): 多态:多态是面向对象很 ...

  6. 【Java基础】面向对象特性

    面向对象的特征 面向对象的主要特征包括:抽象,继承,封装,多态 1. 抽象:忽略主题中与当前目标无关的方面,值注意与目标有关的方面(抓住主要矛盾或者主要特征),包括数据抽象和过程抽象 2. 继承:用于 ...

  7. JavaScript的面向对象特性

    JavaScript的面向对象特性   JavaScript是基于对象和事件驱动并具有安全性能的脚本:JavaScript虽然不是面向对象的编程语言但具有很多面向对象的特性. 1.面向对象开发 a)  ...

  8. Javascript面向对象特性

    JavaScript面向对象的支持 ~~~~~~~~~~~~~~~~~~ 很少有人对JavaScript的面向对象特性进行系统的分析.我希望接下来的文字让你了解到这 个语言最少为人知的一面. 1. J ...

  9. Java什么是面向对象和面向对象特性

    找工作,面试官都会问起什么是面向对象.对于这种问题也没有唯一的说法吧.自己感觉 要结合实际来说吧.以下通过面向对象的概念和面向对象特性来理解什么是面向对象 面向对象其实是现实世界模型的自然延伸.现实世 ...

最新文章

  1. DCN-s4600 跨vlan访问
  2. Linux内核子系统
  3. python 语言教程(3)变量之字典
  4. 汇编语言Makefile
  5. 启动mysql提1067_win7系统启动mysql服务提升错误1067进程意外终止的解决方法
  6. django 中的render和render_to_response()和locals()
  7. linux云自动化运维基础知识23(DDNS服务配置)
  8. django-添加学生的制作-模块的封装
  9. [转]awesome-tensorflow-chinese
  10. Mybatis-学习笔记(1)SqlSessionFactory、SqlSession、Mybatis配置文件configuration的属性标签...
  11. paypal java开发_paypal开发指南
  12. 白盒测试 | 用例设计方法之条件组合覆盖
  13. php奖学金系统,java/php/net/pythont奖助学金管理系统设计
  14. java囧囧西游之大闹天宫下载_最新囧囧西游之大闹天宫榜单下载_九游
  15. 计算机网络里的DHCP是什么,路由器设置中的dhcp是什么意思?
  16. The first GAN——Generative Adversarial Nets
  17. CUDA学习第三天:Kernel+grid+block关系
  18. 语义通信(Semantic Communication)
  19. OpenGL Glut 初学
  20. hive 正则表达式 过滤字符串里的中文

热门文章

  1. 阿里云人脸识别公测使用说明
  2. pandas指南:做更高效的数据科学家
  3. 支撑双十一的网络引擎:飞天洛神
  4. 【程序猿必备】数据结构与算法精选面试题
  5. 德勤发布2021年度企业AI应用现状报告,AI驱动已成竞争必需品
  6. 十年云计算大爆发,微软正在摧毁其它竞争对手
  7. Cloud一分钟 | Facebook隐私泄露事件继续发酵,黑客明码标价出售聊天信息
  8. linux可平通网关但不能上网,redhat问题:能ping通网关和本网段的IP,但是不能ping通DNS,也不能上网...
  9. Jenkins 2.322 安装 自定义插件
  10. Seata 的AT模式需求实战_04