php面向对象 2
继承
概念:如果一个类有子类,那么该子类会继承父类的一切东西(私有成员访问不到)
在定义子类的时候需要加一个关键字:extends
特点:单继承,一个类只能有一个父类
如果父类中有构造函数,子类在实例化的时候要按照父类构造函数的标准来实例化
子类对父类方法的重写:在子类中写一个同样的方法
final:用来修饰类,代表该类是一个最终类,该类无法被继承。
class Info
{
public $code;
protected $name;
private $sex;
function __construct($s) //构造函数
{
$this->sex = $s;
}
}
class Test extends Info
{
}
$t = new Test("女");
$t->Code = "p001";
var_dump($t);
子类中调用父类的方法 parent::
class Info
{
public $code;
protected $name;
private $sex;
function Say()
{
echo "hello";
}
}
class Test extends Info
{
function Say()
{
parent ::Say(); //调用父类的Say()方法
echo "Test Say";
}
}
$t = new Test();
$t->say();
静态成员
类里面的普通成员是属于对象的,不是属于类的(调用的时候是用对象调用的)
什么叫做静态成员:类静态成员是属于类的,不是属于每个对象的
定义静态成员用static关键字
静态方法里面无法调用普通成员
静态方法可以调用静态成员,使用self关键字调用
self代表该类,$this代表该对象
class Info
{
public static $class; //static关键字定义静态的
public $code;
protected $name;
private $sex;
static function Test() //静态方法
{
self::$class; //调用自身类里面的静态成员
echo "静态方法!";
}
function Say()
{
echo self::$class; //普通方法里面可以调用静态成员
echo "hello";
}
}
$r = new Ren();
Info::$class = "0305"; //访问静态成员用 ::
Info::Test(); //调用静态方法
const n = 20; //将某些类里面常用到的东西定义为一个常量,方便使用
多态
概念:当父类引用指向子类实例的时候,由于子类对父类函数进行了重写,导致我们在使用该引用相应的方法表现出的不同
条件:
1.必须有继承
2.子类必须要对父类的方法重写
函数重载
条件:
1.函数名必须相同
2.函数里面参数的个数相同
2.如果个数相同,类型不同
__tostring()方法
class Ren
{
public $name;
public $sex;
function __tostring() //可以输出类的一些描述
{
return "这个对象包含name和sex,一个Say方法";
}
}
$r = new Ren();
echo $r;
对象的克隆
$r->name = "张三";
$r1 = clone $r; //克隆对象
echo $r->name;
克隆对象,然后修改内容
class Ren
{
public $name;
public $sex;
function __clone() //对象克隆的时候自动执行
{
$this->name = "李四"; //$this指复本(克隆出来的新对象)
}
}
$r = new Ren();
$r->name = "张三";
$r1 = clone $r; //克隆对象
echo $r->name; //输出内容为“张三”
echo $r1->name; //输出内容为“李四”
php面向对象 2的更多相关文章
- angular2系列教程(六)两种pipe:函数式编程与面向对象编程
今天,我们要讲的是angualr2的pipe这个知识点. 例子
- 一起学 Java(二)面向对象
一.方法函数 函数也称为方法,就是定义在类中的具有特定功能的一段独立代码.用于定义功能,提高代码的复用性. 函数的特点1> 定义函数可以将功能代码进行封装,便于对该功能进行复用:2> 函数 ...
- js面向对象学习 - 对象概念及创建对象
原文地址:js面向对象学习笔记 一.对象概念 对象是什么?对象是“无序属性的集合,其属性可以包括基本值,对象或者函数”.也就是一组名值对的无序集合. 对象的特性(不可直接访问),也就是属性包含两种,数 ...
- 前端开发:面向对象与javascript中的面向对象实现(二)构造函数与原型
前端开发:面向对象与javascript中的面向对象实现(二)构造函数与原型 前言(题外话): 有人说拖延症是一个绝症,哎呀治不好了.先不说这是一个每个人都多多少少会有的,也不管它究竟对生活有多么大的 ...
- .NET 基础 一步步 一幕幕[面向对象之对象和类]
对象和类 本篇正式进入面向对象的知识点简述: 何为对象,佛曰:一花一世界,一木一浮生,一草一天堂,一叶一如来,一砂一极乐,一方一净土,一笑一尘缘,一念一清静.可见"万物皆对象". ...
- 简单分析JavaScript中的面向对象
初学JavaScript的时候有人会认为JavaScript不是一门面向对象的语言,因为JS是没有类的概念的,但是这并不代表JavaScript没有对象的存在,而且JavaScript也提供了其它的方 ...
- Java程序员应该了解的10个面向对象设计原则
面向对象设计原则: 是OOPS(Object-Oriented Programming System,面向对象的程序设计系统)编程的核心,但大多数Java程序员追逐像Singleton.Decorat ...
- JavaScript学习笔记(三)——this、原型、javascript面向对象
一.this 在JavaScript中this表示:谁调用它,this就是谁. JavaScript是由对象组成的,一切皆为对象,万物皆为对象.this是一个动态的对象,根据调用的对象不同而发生变化, ...
- 带你一分钟理解闭包--js面向对象编程
上一篇<简单粗暴地理解js原型链--js面向对象编程>没想到能攒到这么多赞,实属意外.分享是个好事情,尤其是分享自己的学习感悟.所以网上关于原型链.闭包.作用域等文章多如牛毛,很多文章写得 ...
- .NET基础拾遗(2)面向对象的实现和异常的处理基础
Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理基础 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开 ...
随机推荐
- 24、Nginx缓存web服务
通常情况下缓存是用来减少后端压力, 将压力尽可能的往前推, 减少后端压力,提高网站并发延时 1.缓存常见类型 服务端缓存 代理缓存, 获取服务端内容进行缓存 客户端浏览器缓存 Nginx代理缓存原理 ...
- aiomysql实现对数据库异步读取
有一个库叫做aiomysql,这是一个基于asyncio和pymysql的库.至于为什么可以在tornado中使用,是因为高版本tornado的底层使用了asyncio. import asyncio ...
- Get To Know Linux: The /etc/init.d Directory
If you use Linux you most likely have heard of the init.d directory. But what exactly does this dire ...
- Zookeeper客户端使用(使用Curator)
Zookeeper客户端(使用Curator) 三.使用curator客户端 在pom.xml中加入依赖 <dependency> <groupId>org.apache.cu ...
- ELK是什么?
ELK = ElasticSearch + Logstash + Kibana Elasticsearch:后台分布式存储以及全文检索 Logstash : 日志加工.“搬运工” Kibana : ...
- tensorflow各版本下载地址
https://pypi.org/project/tensorflow-gpu/1.13.0/#files 把13改对你想要的版本
- 基于角色权限管理:rbac具体代码实现
权限管理 创建一个rbac和app的应用,这个rbac主要是用来存放权限的,全称叫做基于角色权限控制 一.先看配置文件合适不,给创建的rbac在配置文件里面设置一下 找到INSTALLED_APPS= ...
- 红帽Linux故障定位技术详解与实例(2)
红帽Linux故障定位技术详解与实例(2) 2011-09-28 14:26 圈儿 BEAREYES.COM 我要评论(0) 字号:T | T 在线故障定位就是在故障发生时, 故障所处的操作系统环境仍 ...
- 开始PHP,常量/变量与内存间的关系--传值
一.常见的PHP代码嵌入式方式,与html结合 要注意:文件名后缀必须形如xxx.php否则html将无法解析 二.php脱离html代码独立工作,没有其他代码 不需要借助Apache工作,只需要ph ...
- TCP超时与重传机制与拥塞避免
TCP超时与重传机制 TCP协议是一种面向连接的可靠的传输层协议,它保证了数据的可靠传输,对于一些出错,超时丢包等问题TCP设计的超时与重传机制. 基本原理:在发送一个数据之后,就开启一个定时器,若是 ...