php 中 public private protected的区别
public 子类,外部都可调用。
protected 子类可以调用,外部不可以调用。
private 子类不可以调用,外部不可以调用。
<?php
class AA {
public function a() {
echo 'aaa';
}
protected function b() {
echo 'bbb';
}
private function c() {
echo 'ccc';
}
}
$objAA = new AA();
$objAA->a();
$objAA->b(); // 报错
$objAA->c(); // 报错
<?php
class AA {
public function a() {
echo 'aa1';
}
protected function b() {
echo 'bb1';
}
private function c() {
echo 'cc1';
}
}
class BB extends AA{
public function a() {
echo 'aa2';
}
public function b() {
echo 'bb2';
}
public function c() {
echo 'cc2';
}
}
$objBB = new BB();
$objBB->a(); // 正常
$objBB->b(); // 正常
$objBB->c(); // 正常
public 可以重写所有的父类方法。
<?php
class AA {
public function a() {
echo 'aa1';
}
protected function b() {
echo 'bb1';
}
private function c() {
echo 'cc1';
}
}
class BB extends AA{
protected function a() { // 报错
echo 'aa2';
}
protected function b() {
echo 'bb2';
}
protected function c() {
echo 'cc2';
}
}
$objBB = new BB();
$objBB->a(); // 报错
$objBB->b(); // 报错
$objBB->c(); // 报错
<?php
class AA {
public function a() {
echo 'aa1';
}
protected function b() {
echo 'bb1';
}
private function c() {
echo 'cc1';
}
}
class BB extends AA{
private function a() { // 报错
echo 'aa2';
}
private function b() { // 报错
echo 'bb2';
}
private function c() {
echo 'cc2';
}
}
$objBB = new BB();
$objBB->a(); // 报错
$objBB->b(); // 报错
$objBB->c(); // 报错
子类覆盖父类方法,不可以缩小父类的设置。
<?php
class AA {
public function a() {
echo 'aa1';
}
protected function b() {
echo 'bb1';
}
private function c() {
echo 'cc1';
}
}
class BB extends AA{
public function d() {
$this->a();
}
public function e() {
$this->b();
}
public function f() {
$this->c(); // 报错
}
}
$objBB = new BB();
$objBB->d();
$objBB->e();
$objBB->f();
私有方法不可调用。
php 中 public private protected的区别的更多相关文章
- php class中public,private,protected的区别,以及实例
一,public,private,protected的区别 public:权限是最大的,可以内部调用,实例调用等. protected: 受保护类型,用于本类和继承类调用. private: 私有类型 ...
- Java中public,private,protected,和默认的区别
Java中public,private,protected,和默认的区别 1.private修饰词,表示成员是私有的,只有自身可以访问: 2.protected,表示受保护权限,体现在继承,即子类可以 ...
- public,private,protected的区别
一,public,private,protected的区别public:权限是最大的,可以内部调用,实例调用等.protected: 受保护类型,用于本类和继承类调用.private: 私有类型,只有 ...
- PHP中const,static,public,private,protected的区别
原文地址:http://small.aiweimeng.top/index.php/archives/54.html const: 定义常量,一般定义后不可改变static: 静态,类名可以访问pub ...
- PHP中public,private,protected,abstract等关键字用法详解
PHP中常用的关键字 在PHP中包含了很多对函数和类进行限制的关键字,常用的通常有abstract,final,interface,public,protected,private,static等等, ...
- java中public private protected default的区别
1.public:public表明该数据成员.成员函数是对所有用户开放的,所有用户都可以直接进行调用 2.private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直 ...
- cmake target_link_libraries() 中<PUBLIC|PRIVATE|INTERFACE> 的区别
如果目标的头文件中包含了依赖的头文件(源文件间接包含),那么这里就是PUBLIC 如果目标仅源文件中包含了依赖的头文件,那么这里就是PRIVATE 如果目标的头文件包含依赖,但源文件未包含,那么这里就 ...
- Java class 中public、protected 、friendly、private的区别
转载自:http://hi.baidu.com/ceoct/item/7e136a2417ba6f896f2cc33c Java class 中public.protected .friendly.p ...
- public/private/protected访问控制权限的区别
//public/private/protected访问控制权限的区别//时间:2016/8/16 //(一)修饰成员: //public: 在类内.类外都能使用 . //protected: 在类内 ...
随机推荐
- xml文件中[Invalid byte 1 of 1-byte UTF-8 sequence.]的解决方案
问题描述: 导入项目包后发生xml文件出现错误信息:[Invalid byte 1 of 1-byte UTF-8 sequence.],如下截图所示: 解决方案: 将xml文件全部内容剪切到Note ...
- mysql日志种类、二进制日志模式、mysqlbinlog解析二进制日志
mysql日志的种类 二进制日志(binary log):记录数据更新的操作,mysqlbinlog 可查看二进制日志文件 错误日志(error log):记录mysql服务进程mysqld的启动.关 ...
- Spring RestController 请求参数详解
Spring RestController 请求参数详解 引用作者jpfss 在阅读之前,最好先了解http请求的get,post,以及各种head头类型,请求参数类型. 无参数,设置RestCont ...
- JavaScript实现表单验证_02
注册3次错误,最终的结果: 代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8" ...
- oracle 12cR2 smart flash cache实测
最近一直在处理新系统的性能优化问题,这两天特地测试了下oracle 11gR2开始引入的smart flash cache. 其介绍参考MOS文档,How To Size the Database S ...
- vs变量监视提示-VAR-CREATE: UNABLE TO CREATE VARIABLE OBJECT解决方法
昨天有个linux应用在使用vs 远程debug的时候,debug可以正常进行,但是监视变量的时候提示-VAR-CREATE: UNABLE TO CREATE VARIABLE OBJECT,经测试 ...
- nginx负载均衡fair方式分发
fair采用的不是内建负载均衡使用的轮换的均衡算法,而是可以根据页面大小.加载时间长短智能的进行负载均衡. 这算是没有安装fair的情况 [root@localhost sbin]# ./nginx ...
- Git rebase的使用
rebase 在 Git 中整合来自不同分支的修改主要有两种方法:merge 以及 rebase. 在本节中我们将学习什么是“rebase”,怎样使用“rebase”,并将展示该操作的惊艳之处,以及指 ...
- S.M.A.R.T.记录几块ssd硬盘
1.闪迪至尊超级速(Extreme pro) 2.三星sm961 (m2接口) 3.intel 750 (pice接口) ps: 因为sm961,intel750都是nvme协议,网上大部分软件测试都 ...
- SpringBoot 全局统一记录日志
1.记录日志 使用aop来记录controller中的请求返回日志 pom.xml引入: <dependency> <groupId>org.springframework.b ...