访问控制修饰符指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. 如何把数字字符'1'转换为整数(java 实现)

    在一些表达式计算时,如 “3+2”    表达式自身是个字符串,通过切片得到的是数字字符和操作符,不能直接进行计算,在表达式计算中需要进行一步操作是,把数字字符'2','3'转化为整数. 如何操作? ...

  2. centos7 卸载安装失败的mysql7

    1.查询现在的服务器上面的mysql已经安装了什么内容: rpm -qa |grep -i mysql 2.开始卸载执行命令: yum remove mysql-community-common-5. ...

  3. 玲珑oj 1028 贪心

    http://www.ifrog.cc/acm/problem/1028 很有趣的一道题,求从n个数里挑出不同的两个,使得他俩'|','&','^'后的值尽量大,求这个最大的结果. 求最大的异 ...

  4. Ansible 小手册系列 十五(Blocks 分组)

    当我们想在满足一个条件下,执行多个任务时,就需要分组了.而不再每个任务都要用when. tasks: - block: - command: echo 1 - shell: echo 2 - raw: ...

  5. GitHub:Git的使用

    1.下载安装后设置姓名和邮箱地址 $ git config --global user.name "yourGithubName" $ git config --global us ...

  6. 六.dbms_session(提供了使用PL/SQL实现ALTER SESSION命令)

    1.概述 作用:提供了使用PL/SQL实现ALTER SESSION命令,SET ROLE命令和其他会话信息的方法 .2.包的组成 1).set_identifier说明:用于设置会话的客户ID号.语 ...

  7. iOS 可能用到的三方框架

    1.MWPhotoBrowser 第三方图片浏览器 https://github.com/mwaterfall/MWPhotoBrowser 2.SlackTextViewController  强大 ...

  8. PostgreSQL CPU满(100%)性能分析及优化(转)

    PostgreSQL CPU满(100%)性能分析及优化 转自:https://help.aliyun.com/knowledge_detail/43562.html    在数据库运维当中,一个DB ...

  9. Xen,VMware ESXi,Hyper-V和KVM等虚拟化技术的原理解析

    Xen,VMware ESXi,Hyper-V和KVM等虚拟化技术的原理解析 2018年04月03日 13:51:55 阅读数:936   XEN 与 VMware ESXi,Hyper-V 以及 K ...

  10. 将window上的项目上传到自己的github

    使用git 1.首先在自己的github上面新建仓库 2.记下远程仓库的地址 3.在要上传的项目的目录下使用git命令进行上传 (1)先git init 初始化本地的仓库 (2)git add -A ...