public、protect、private在父类子类中使用
先贴出一张,直观的、估计大家都见过的关于public、protect、private的范围图
|
作用域
|
当前类
|
同一package
|
子孙类 |
其他package
|
|
public
|
T
|
T
|
T
|
T
|
|
protect
|
T
|
T
|
T
|
F
|
|
private
|
T
|
F
|
F
|
F
|
T : true F : false
<?php
class test {
private $variable = 1;
public function setVal($param) {
$this->variable = $param;
}
public function getVal() {
return $this->variable;
}
private function output() {
echo 1;
}
}
class test2 extends test {
public function __construct(){
$this->variable =2;
}
}
$obj = new test2();
print_r($obj);
echo '<br />';
echo $obj->variable;
//$obj->output();
echo '<br />';
echo $obj->getVal();
echo '<br />';
$obj->setVal(3);
echo $obj->getVal();
echo '<br />';
print_r($obj);
}
?>
输出:
test2 Object ( [variable:test:private] => 1 [variable] => 2 )
2
1
3
test2 Object ( [variable:test:private] => 3 [variable] => 2 )
<?php
class test {
private $variable = 1;
public function setVal($param) {
$this->variable = $param;
}
public function getVal() {
return $this->variable;
}
private function output() {
echo 1;
}
}
class test2 extends test {
public function __construct(){
//$this->variable =2;
private $variable = 2;
}
}
$obj = new test2();
print_r($obj);
echo '<br />';
echo $obj->variable;
//$obj->output();
echo '<br />';
echo $obj->getVal();
echo '<br />';
$obj->setVal(3);
echo $obj->getVal();
echo '<br />';
print_r($obj);
?>
<?php
class test {
private $variable = 1;
public function setVal($param) {
$this->variable = $param;
}
public function getVal() {
return $this->variable;
}
private function output() {
echo 1;
}
}
class test2 extends test {
public function __construct(){
$this->variable =2;
}
}
$obj = new test2();
print_r($obj); $obj->setVal(3);
echo $obj->getVal();
echo '<br />';
print_r($obj);
}
?>
上班零时整理,结果还华丽丽的被领导看到了,尴尬死我了,格式没太顾得上,哎、、、、
public、protect、private在父类子类中使用的更多相关文章
- public protect private. 草稿。
public protect private. 草稿. #include <iostream> #include <thread> #include <memory> ...
- C++中public/protect/private三种访问权限控制
一.成员访问权限控制 1.public (1)public成员变量可以被成员函数访问 [访问性] (2)public成员可以被实体对象访问 [访问性] (3)public成员可以成为子类成员 [ ...
- public,protect,private访问权限
第一:private, public, protected 访问标号的访问范围. private:只能由1.该类中的函数.2.其友元函数访问.不能被任何其他访问,该类的对象也不能访问. protect ...
- [C++]访问控制与继承(public,protect,private) 有时间再整理!!!
http://www.cnblogs.com/chio/archive/2007/06/11/779408.html http://www.cnblogs.com/SelaSelah/archive/ ...
- C++中的Public 、Private、Protected 区别
第一: private,public,protected的访问范围: private: 只能由该类的成员函数.友元的成员函数访问,不能被其他类的成员函数访问,即使是该类的对象也不能直接访问 publi ...
- Java中public、private、protect对数据成员或成员函数的访问限制
Java类中对数据成员.成员函数的访问限制修饰有:public.protect.private.friendly(包访问限制) public修饰的数据成员或成员函数是对所有用户开放的,所有用户可以直接 ...
- java中public与private还有protect的区别
java中public与private还有protect的区别 总是忘记.
- Ruby中类的进阶(继承,private, public, protect)
类中的public,protect,private public method class Point def test end end 这样定义的test方法就是一个public方法可以在类内外使用 ...
- swift 中关于open ,public ,fileprivate,private ,internal,修饰的说明
关于 swift 中的open ,public ,fileprivate,private, internal的区别 以下按照修饰关键字的访问约束范围 从约束的限定范围大到小的排序进行说明 open,p ...
随机推荐
- Android IOS WebRTC 音视频开发总结(十八)-- 手机适配
本文主要介绍上次碰到的某些机器上看不到视频的问题,文章来自博客园RTC.Blacker,转载请说明出处. 之前做的视频聊天App一直运行良好,前几天客户反馈说在三星9100. Android4.0.3 ...
- word文档中的字号和磅的对应关系
字号 磅 初号 42 小初 36 一号 26 小一 24 二号 22 小二 18 三号 16 小三 15 四号 14 小四 12 五号 10.5 小五 9 六号 7.5 小六 6.5 七号 5.5
- Solaris网络配置
/etc/hostname.interface:物理端口,里面包含一个主机名或主机的IP/etc/nodename:计算机名/etc/defaultdomain:主机域名/etc/defaultrou ...
- 新手浅谈Task异步编程和Thread多线程编程
初学Task的时候上网搜索,看到很多文章的标题都是task取代thread等等相关,我也一直以为task和thread是一类,其实task是.net4.0提出的异步编程,在之前.net1.0有dele ...
- luigi学习9--执行模型
luigi的执行和触发模型非常简单. 一.luigi的执行模型 当你执行一个luigi的工作流的时候,worker调度所有的task,并且执行task在一个单独的进程中. 这种scheme最大的好处是 ...
- php对数组排序的例子
分享一个php数组排序的例子,介绍了和php,有关的知识.技巧.经验,和一些php源码等. <?php class='pingjiaF' frameborder='0' src='http:// ...
- VMware虚拟机升级过程中遇到的一点问题
在将VWware由9.0升级到10.0的过程中,出现如下图的错误: failed to create the requested registry key Key:Installer e ...
- 银河英雄传说 (codevs 1540) 题解
[问题描述] 公元五八○一年,地球居民迁移至金牛座α第二行星,在那里发表银河联邦创立宣言,同年改元为宇宙历元年,并开始向银河系深处拓展. 宇宙历七九九年,银河系的两大军事集团在巴米利恩星域爆发战争.泰 ...
- .NET Framework4.0 下的多线程
一.简介 在4.0之前,多线程只能用Thread或者ThreadPool,而4.0下提供了功能强大的Task处理方式,这样免去了程序员自己维护线程池,而且可以申请取消线程等...所以本文主要描述Tas ...
- 内存分配函数malloc、realloc、calloc、_alloca
1.内存分配函数_alloca.malloc.realloc.calloc: _alloca 函数原型void * __cdecl _alloca(size_t); 头文件:malloc.h _all ...