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 ...
随机推荐
- 无DLL远程注入
界面如下: 主要代码如下: #define STRLEN 20 typedef struct _DATA { DWORD dwLoadLibrary; DWORD dwGetProcAddress; ...
- .net4.0注册到IIS
IIS和.netfw4.0安装顺序是从前到后,如果不小心颠倒了,无所谓. 打开程序-运行-cmd:输入一下命令重新注册IIS C:\WINDOWS\Microsoft.NET\Framework\v4 ...
- POJ C程序设计进阶 编程题#1:寻找下标
编程题#1:寻找下标 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 已知一 ...
- DataGridView取消默认选中行
DataGridView在添加数据后会默认选中第 一个单元格或者第一行,我就想取消它的默认选中行.在DataGridView绑定数据之后加上了ClearSelection().这样一来,不论是启动窗体 ...
- silverlight 获取路径 config
1.获取web.config配置内容: web.config default.aspx protected string InitParams { get; set; } InitParams = s ...
- hive到hbase的使用
一.简单介绍 hive的元数据保存在metastore里面,真实的数据一般位于hdfs中,可以通过hql来对数据进行分析.hbase中的数据也是存放在hdfs上的,可不可以使用hive来分析hbase ...
- MongoDB(4):多种方式关闭服务命令
http://blog.csdn.net/czw698/article/details/8791153 MongoDB 提供几种关闭服务的命令,具体为以下: 一 使用 Crtl+C 关闭 [mong ...
- Java 中的抽象类及接口
抽象类使用 abstract 关键字修饰,该类即为抽象类. 抽象类的作用: 1.某些情况下,父类约束子类必须包含哪些方法,但不知道子类如何去实现这些方法. 2.可以从多个具有相同特征的类中抽象出一个抽 ...
- Java实现0~100之和
经典问题了,三个变量分别表示起始.结尾以及和,for循环从起始到结尾,和不断累积.代码如下: public class ForLoop { public static void main(String ...
- 做个伪IE浏览器?!【来自官网】
原文:docwiki.embarcadero.com/RADStudio/Seattle/en/Building_a_VCL_Forms_Web_Browser_Application 选择File ...