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 ...
随机推荐
- 五、Eclipse编写struts.xml没有提示的问题
五.Eclipse编写struts.xml没有提示的问题 原因:找不到约束文件 解决: 联网 手工配 a.eclipse的菜单:window\preferences
- CentOS6.5配置vim使支持Python
CentOS6.5下开启vim对python的支持,配置方法如下: 1.检查系统已经安装了RPM包vim-enhanced; 2.复制默认的.vimrc初始化文件: # cp /usr/share/v ...
- C#基础-ref、out
1.默认情况下,C#假定所有的方法参数传递都是传值的. 如下面的方法: public static void Main(string[] args) { int val = 5; //调用AddVal ...
- ASP.NET MVC5 入门
参考资料<ASP.NET MVC5 高级编程>第5版 第1章 入门 1.1 ASP.NET MVC 简介 ASP.NET MVC是一种构建Web 应用程序的框架,它将一般的MVC(Mode ...
- C# 和 Unix 时间戳转换
unix时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒. /// 时间戳转为C#格式时间 private DateTime GetTime(string timeSt ...
- 已经导入了具有相同的简单名称“Interop.DSOFramer, Version=1.3.0.0, Culture=neutral, PublicKeyToken=null”的程序集。
错误 : 已经导入了具有相同的简单名称“Interop.DSOFramer, Version=1.3.0.0, Culture=neutral, PublicKeyToken=null”的程序集. ...
- VS2010 /VC/bin/rcdll.dll 无法找到资源编译器
把C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin 目录下的rcdll.dll拷贝到 C:\Program Files(x86)\Micr ...
- “Unable to resolve target 'android-9'”的问题
SDK版本问题! 如果导入时,eclipse的console中提示信息:“Unable to resolve target 'android-9'” 可能的问题就是你安装的SDK版本高于项目的版本!( ...
- 10)Java Error and Exception
1>异常继承类 Error类和Exception类都继续自Throwable类 Error表示系统级的错误情况,如内存错误这样程序无法通过自身的处理再继续执行下去的情 ...
- delphi常用函数过程
数据类型转化 1.1. 数值和字符串转化 Procedure Str(X [: Width [ : Decimals ]]; var S); 将数值X按照一定格式转化成字符串S.Wid ...