php 面向对象二
多态:
多态就是多种形态;多态分为方法重写和方法重载,但是php不支持方法重载
重写:


子类和父类的方法名必须一致,严格标准要求参数必须一致,但是参数可以不一致
子类中覆盖的方法不能比父类的方法访问权限更加严格(protected->public public->protected)
在一个类中可以有多个同名的方法,根据方法的类型和参数的个数来区分
私有属性继承和重写的问题

此时是public 执行结果是一个name

Private情况下

结果是两个name

在这$this 保存的是B类的对象。
方法修饰符:
Static(静态的)修是属性称为静态属性,修饰方法称为静态方法:(加载代码的时候在内存中自动分配空间)不需要实例化可以直接使用静态成员。
访问:类名::静态成员
静态成员再内存中只有一份,为所有的实例共用。静态方法中不能访问普通成员,只能访问静态成员。因为静态成员创建的时候,可能还没有任何实例被实例化。
Self表示当前类的名称
静态成员可以被继承。

Self的使用可以降低耦合性。程序开发过程的要求是要高内聚低耦合;
非静态方法被self::调用,自动的转成静态方法;

@self是屏蔽调警告。
访问属性的时候不行,属性不实例化是不分配空间的,方法是加载在代码区的,所以在加载的时候可以进行转为静态。

确定当前对象:

【Static::静态成员】称为延时绑定,static表示的是一个类。表示什么类在运行时确定。Self不运行就可以确定是当前所在的类。
final() 最终的
Final修饰的类为最终类,不可以被继承。Fianl修是的方法不能够被重写。

Abstruct 抽象的
抽象类和抽象方法:
如果只有方法的声明而没有方法的实现称为抽象方法。
如果一个类中有一个抽象方法,那么这个类就是抽象类。
抽象类不允许实例化,必须在子类中重新实现才能实例化。

抽象类的作用:定义同意的方法的名称,防止实例化;
Interface 接口
如果一个类中的方法全是抽象方法,那么这个类就可以声明成接口。借口就是一个特殊的抽象类。
接口中的方法必须是public 默认也是public,implements来实现接口。

不能用final和abstract修是接口中的抽象方法。
命名接口惯例加I,如IPubClass,上述代码命名错误。
接口允许多重实现。

一个类可以继承类的同时实现接口,必须先继承类然后实现接口。

类常量:const

参数约束:在PHP5.3以后才支持的,只能约束对象,不能约束基本类型。

父类可以指向子类的引用:

自动加载类:
当页面执行的时候,通过PHP核心程序(Zend Engine)判断用户脚本需要哪个类,如果没有找到,会自动的调用__autoload函数,并且会将缺少的类名传递给__autoload函数。

适用于存放在同一个目录下。
将类的地址映射到数组中加载:

对存储不规则的类并且数目较少的类适用。
利用类名规则加载类:
将同一类型的类放在同一个目录下,比如Model类,Lib类:类名如StuLib, TeachModel

Clone与__clone()
对象传的是地址。

Clone是用来复制一个对象
当执行clone命令的时候,会自动执行__clone()这个函数

php 面向对象二的更多相关文章
- 2. 星际争霸之php面向对象(二)
题记==============================================================================本php设计模式专辑来源于博客(jymo ...
- Javascript面向对象二
Javascript面向对象二 可以通过指定原型属性来对所有的对象指定属性, Object.prototype.name="zhangsan"; Object.prototype. ...
- python面向对象二
1.1类的静态属性,类方法,类的静态方法 1.1.1静态属性(@property) 在类中: python内置的@property装饰器就是负责把一个方法(函数)变成属性来调用. class Stud ...
- canvas学习和面向对象(二)
Canvas 学习(二) 上一篇Canvas 学习(一)中我是用canvas绘制了一些基本和组合的图形. 现在开始绘制图片和动画帧,以及面向对象的升级版本. 还是一样,看代码,所有的代码都托管在git ...
- JavaScript 面向对象(二) —— 案例篇
看案例前可以先看看基础篇:JavaScript 面向对象(一) —— 基础篇 案例——面向对象的选项卡:把面向过程的程序一步步改成面向对象的形式,使其能够更加的通用(但是通用的东西,一般会比较臃肿). ...
- JavaScript面向对象(二)——成员属性、静态属性、原型属性与JS原型链
前 言 JRedu 上一篇博客中,我们介绍了JS中的面向对象,并详细的解释了this的指向问题.本篇博客,我们继续来学习JS的面向对象.来深入理解一下JavaScript OOP中的成员属性/方 ...
- 第八章:Python基础の面向对象(二)
本課主題 面向对象的多态 面向对象的成员 成员修饰符 特殊成员 面向对象其他应用 异常处理 设计模式与单例模式 面向对象的多态 指定参数类型只是多态的一种表现 另外一种是允许自己类型和自己的子类型(典 ...
- Python之面向对象二
面向对象的三大特性: 继承 继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类 python中类的继承分为:单继承和多继承 c ...
- Python自动化开发 - 面向对象(二)
本节内容 1.isinstance(obj,cls)和issubclass(sub,super) 2.反射 3.__setattr__,__delattr__,__getattr__ 一. isins ...
- python 面向对象二 类和实例
一.类和实例 面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法, ...
随机推荐
- 使用Semaphore同步,经典银行账户问题
1.新建Account类,使用Semaphore同步增加和减少金额方法. package com.xkzhangsan.semaphorepack.bank; import java.util.con ...
- dataguard从库移动数据文件
------------方法1从库移动数据文件路径方法1--------------将表空间offline的方法不行 1.退出日志应用alter database recover managed st ...
- centos7救援模式--误删/usr/bin/恢复
模拟场景 centos7 误删/usr/bin/等系统内置文件夹, 导致几百个内置命令丢失. 修复 rescue模式 vm模拟一遍(如果在物理机, 可通过U盘方式直接开机U盘进入选择救援模式, 方式通 ...
- 【spotlight安装监控】
参考博客: https://www.cnblogs.com/ceshi2016/p/9012646.html http://blog.sina.com.cn/s/blog_1517220f20102x ...
- mfc双缓冲绘图
1.要求 在界面加载本地图片并显示,每过100ms改变一张图片显示 2.现象 通过定时器控制CImage,Load,Draw,Destroy,会非常的卡顿.因为Load图片时,会是非常大的数据[所有C ...
- 浅谈RESTful
浅谈RESTful 什么是RESTful? REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移. 它首次出现在2000年Ro ...
- Android中自定义广播的实现
今天尝试了自定义的广播,说是自定义的广播其实质就是自己编写一个类继承broadcastreceiver类,然后再onreceiver方法中实现某些功能,在这个过程中我们可以自定义我们要发出的广播,可以 ...
- 破解360doc个人图书馆网站的右键、复制方法
chrome浏览器如下做法: 右上角菜单按钮→设置→显示高级设置→隐私设置下的 内容设置按钮→javascript下的管理例外情况→添加 [*.]360doc.com 设置为禁止 →完成
- 如何在cisco官网上下载Cisco packet tracer模拟器
这个是“思科网络技术学院”提供的一个软件,需要注册成为学员以后才能用,注册名字可以更改. 进入网站后,上面七个选项,cisco Networking Academy.课程(下边第七个选项“Packet ...
- Zynq PS和PL间的连接
跨越PS和PL的信号 AXI总线.EMIO.其他(看门狗.重启信号.中断信号.DMA接口信号) AXI标准 AXI(高级可扩展接口)是ARM AMBA的一部分.AMBA总线主要用于片上系统.AXI总线 ...