访问控制修饰符指public、protected、private三个关键词来修饰类的成员属性和成员方法,可以有不同的权限

public:[共有的]类里面调用和类外面调用都是可以的

protected:[受保护的]类里面可以被调用,类外面不可以。

private:[私有的]类里面可以被调用,类外面不可以。

类的继承

继承就是对已有的类进行一个复用的使用。

继承之后可以自动拥有被继承的类的成员属性和成员方法

我们通常把被继承的类叫做父类(也叫做基类),继承别人的类叫做子类也叫做派生类

父类拥有的修饰符被继承的时候会有区别

一个父类可以被多个子类来继承

子类还可以继续被继承

继承具有传递性

语法

通过extends关键词来实现

访问修饰符在继承里面的权限问题

类内部 类外部 继承里面
public 1 1 1
protected 1 0 1
private 1 0 0

继承遇到访问修饰符的权限问题

3 public

2 protected

1 private

当父类是public的时候,子类只能是public

当父类是protected的时候,子类可以是public、protected

当父类是private的时候,子类可以是public、protected、private

注意注意注意

所有的魔术方法都会被继承

所有的魔术方法都可以被重载

parent关键词

可以在子类中调用父类的构造方法

parent::__construct();

在子类中调用父类的方法

parent::say();

在子类调用父类的析构方法

parent::destruct();

final关键词

所有定义了final关键词的类都不能被继承

final class jilei
{ }

静态成员方法

可以不实例化类直接使用类名::方法名调用,用起来比较方便

如下使用

class Wan
{
public static $time = '1天';
public static function xxx()
{
//在类的内部调用静态成员属性使用[类名::属性]或者[self::属性],推荐在类的内部使用self
echo '在内部调用静态属性'.self::$time.'的方法,或者使用'.Wan::$time;
echo '这个是一个静态方法'; //在类的内部调用静态的成员方法同属性
self::yuKuai();
}
public static function yuKuai()
{
ehco '来来来,一起来玩吧';
}
}
//在类的外面调用静态的成员方法
Wan::xxx();
//在类的外面调用静态的成员属性,一定要加$符号
Wan::$time;

PHP面向对象(OOP)----访问限制符的更多相关文章

  1. Java 访问限制符 在同一包中或在不同包中:使用类创建对象的权限 & 对象访问成员变量与方法的权限 & 继承的权限 & 深入理解protected权限

    一.实例成员与类成员 1. 当类的字节码被加载到内存, 类中类变量.类方法即被分配了相应内存空间.入口地址(所有对象共享). 2. 当该类创建对象后,类中实例变量被分配内存(不同对象的实例变量互不相同 ...

  2. [Python_4] Python 面向对象(OOP)

    0. 说明 Python 面向对象(OOP) 笔记.迭代磁盘文件.析构函数.内置方法.多重继承.异常处理 参考 Python面向对象 1. 面向对象 # -*-coding:utf-8-*- &quo ...

  3. PHP面向对象(OOP)编程入门教程

    面向对象编程(OOP)是我们编程的一项基本技能,PHP5对OOP提供了良好的支持.如何使用OOP的思想来进行PHP的高级编程,对于提高 PHP编程能力和规划好Web开发构架都是非常有意义的.下面我们就 ...

  4. 【PHP面向对象(OOP)编程入门教程】1.什么是面向对象?

    面向对象编程(Object Oriented Programming, OOP, 面向对象程序设计)是一种计算机编程架构,OOP的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成 ...

  5. php面向对象(OOP)编程完全教程

    摘自:http://www.php-note.com/article/detail/41 面向对象编程(OOP)是我们编程的一项基本技能,PHP5对OOP提供了良好的支持.如何使用OOP的思想来进行P ...

  6. 拖拽系列二、利用JS面向对象OOP思想实现拖拽封装

    接着上一篇拖拽系列一.JavaScript实现简单的拖拽效果这一篇博客将接着对上一节实现代码利用JS面向对象(OOP)思维对上一节代码进行封装; 使其模块化.避免全局函数污染.方便后期维护和调用:写到 ...

  7. JAVA面向对象-----成员内部类访问细节

    JAVA面向对象-–成员内部类访问细节 私有的成员内部类不能在其他类中直接创建内部类对象来访问. 如果内部类中包含有静态成员,那么java规定内部类必须声明为静态的访问静态内部类的形式:Outer.I ...

  8. 面向对象(OOP)基本概念

    面向对象(OOP)基本概念 面向对象编程 —— Object Oriented Programming 简写 OOP 目标 了解 面向对象 基本概念 01. 面向对象基本概念 我们之前学习的编程方式就 ...

  9. python-面向对象-01_面向对象(OOP)基本概念

    面向对象(OOP)基本概念 面向对象编程 —— Object Oriented Programming 简写 OOP 目标 了解 面向对象 基本概念 01. 面向对象基本概念 我们之前学习的编程方式就 ...

随机推荐

  1. Nginx 启动报错 “/var/run/nginx/nginx.pid" failed”

    问题: 重启虚拟机后,再次重启nginx会报错: open() "/var/run/nginx/nginx.pid" failed (2: No such file or dire ...

  2. bzoj3673可持久化并查集

    n个集合 m个操作操作:1 a b 合并a,b所在集合2 k 回到第k次操作之后的状态(查询算作操作)3 a b 询问a,b是否属于同一集合,是则输出1否则输出0 0<n,m<=2*10^ ...

  3. uva11183最小树形图

    本来看数据用临界矩阵可能会超时,还是写了临界矩阵,结果1A了 模板的不能再模板 了 #include<map> #include<set> #include<cmath& ...

  4. HDU5137-最短路-删点

    How Many Maos Does the Guanxi Worth Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 512000/5 ...

  5. tensorflow入门(二)

    import numpy as np import tensorflow as tf import matplotlib.pyplot as plt #使用numpy生成200个随机点 x_data ...

  6. Anaconda Install

    Linux 安装 首先下载Anaconda Linux安装包,然后打开终端输入: bash ~/Downloads/Anaconda3-2.4.0-Linux-x86_64.sh 注意:如果你接受默认 ...

  7. js排序算法02——插入排序

    插入排序的思路是我们默认数组的第一个元素是有序的,从第二个元素开始依次和前面的元素比较,如果前面的元素大,就将前面的元素往后移一位,如果前面的元素小,就把该元素放在前面元素的后面.其实就和我们玩扑克牌 ...

  8. Struts13---Ognl

    模拟初始化的jsp页面 <body> <a href="user/login">登录</a> </body> public clas ...

  9. springcloud- FeginClient 调用统一拦截添加请求头 RequestInterceptor ,被调用服务获取请求头

    使用场景: 在springcloud中通过Fegin调用远端RestApi的时候,经常需要传递一些参数信息到被调用服务中去,比如从A服务调用B服务的时候, 需要将当前用户信息传递到B调用的服务中去,我 ...

  10. LeetCode OJ:Rotate List(旋转链表)

    Given a list, rotate the list to the right by k places, where k is non-negative. For example:Given 1 ...