<?php
class A
{
public function test() {
$this->testPrivate();
$this->testPublic();
} public function testPublic() {
echo "类A的testPublic()方法";
}
private function testPrivate() {
echo "类A的testPrivate()方法\n";
}
}class B extends A
{
public function testPublic() {
echo "类B的testPublic()方法\n";
}
private function testPrivate() {
echo "类B的testPublic()方法\n";
}
}$obj = new B();
$obj->test();
?>
输出结果是:类A的testPrivate()方法类B的testPublic()方法
为什么$this->testPrivate();
$this->testPublic();调用的方法不是属于同一个类的?
class A
{
public function test() {
$this->testPrivate();
$this->testPublic();
} public function testPublic() {
echo "类A的testPublic()方法";
}
private function testPrivate() {
echo "类A的testPrivate()方法\n";
}
}class B extends A
{
public function testPublic() {
echo "类B的testPublic()方法\n";
}
private function testPrivate() {
echo "类B的testPublic()方法\n";
}
}$obj = new B();
$obj->test();
?>
输出结果是:类A的testPrivate()方法类B的testPublic()方法
为什么$this->testPrivate();
$this->testPublic();调用的方法不是属于同一个类的?
解决方案 »
- 不用js,如何表单提交所选复选框的值
- ____实在太长了,看不习惯,怎么把它缩短?
- 由于套接字没有连接并且没有提供地址,发送或接收数据的请求没有被接受。
- IE下就是不能正常操作,求高手指点
- 一个进程如何去和另个进程通信
- 为什么在Linux+apache下中文文件名的JPG文件无法显示?
- 执行substr($content,0,32),因为$content中可能存在字母,也可能存在汉字,所以输出$content的时候,总是出现"?" 虚心请教解决方法
- PHP如果隐藏后缀名?如www.xxx.com/admin?id=50这样?
- 关于.htaccess设置
- PHP错误报告设置不生效?
- 求助:PHP页面中,无法调用JavaScript脚本
- php 安全问题
这个描述欠妥当,private 成员只在定义的类中可访问,无论是其父类还是子类都无法访问
你可以将类 A 中的
private function testPrivate() {
echo "类A的testPrivate()方法\n";
}
去掉
在执行
$obj = new B();
$obj->test();
看看
1 子类中的test函数是继承父类而来的
2 private表明这个函数只可以在类的内部被访问
3 private不能被继承当你用子类实例化对象后,并调用父类继承而来的函数时,这个函数是属于父类的(虽然被子类继承)
而private的函数只能在内部被使用
所以这个属于父类的函数如果需要调用private函数的话,那么他只能调用父类中的private。public可以被继承,没有此问题
private: 私有的。只能被自身调用
protected: 受保护的。只能被自身和子类调用。C语言家族都通用的这3个定义。