为面向对象而生的PHP5(一)
1的类Hoge2
PHP代码:--------------------------------------------------------------------------------
class Hoge2 extends Hoge1 {
public $var3 = '3';
function d_var1() {
return $this->var1;
}
function d_var2() {
return $this->var2;
}
function d_var3() {
return $this->var3;
}
}
--------------------------------------------------------------------------------
在类Hoge2中,只有$var3被声明为public。在属性是protected的情况下,从子类进行访问有何种限制,是由子类的属性声明决定的。在Hoge2中,因为$var3被声明是public,因此无论是从何处都可以访问Hoge2的$var3(实体是Hoge1的$var3)。因为$var1在Hoge1中是private,因此,在Hoge2子类中Hoge1的$var1不会被继承,而在Hoge2中有可能会做出名为$var1的属性,因此,必须要明确区分Hoge1::$var1和Hoge2::$var1。
PHP代码:--------------------------------------------------------------------------------
$hoge = new Hoge2;
echo 'var1: ' . $hoge->var1 . "
\n"; // var1:
// echo 'var2: ' . $hoge->var2 . "
\n"; // Error
echo 'var3: ' . $hoge->var3 . "
\n"; // var3: 3
echo 'var1: ' . $hoge->d_var1() . "
\n"; // var1:
echo 'var2: ' . $hoge->d_var2() . "
\n"; // var2: B
echo 'var3: ' . $hoge->d_var3() . "
\n"; // var3: 3
--------------------------------------------------------------------------------
PHP代码:--------------------------------------------------------------------------------
class Hoge2 extends Hoge1 {
public $var3 = '3';
function d_var1() {
return $this->var1;
}
function d_var2() {
return $this->var2;
}
function d_var3() {
return $this->var3;
}
}
--------------------------------------------------------------------------------
在类Hoge2中,只有$var3被声明为public。在属性是protected的情况下,从子类进行访问有何种限制,是由子类的属性声明决定的。在Hoge2中,因为$var3被声明是public,因此无论是从何处都可以访问Hoge2的$var3(实体是Hoge1的$var3)。因为$var1在Hoge1中是private,因此,在Hoge2子类中Hoge1的$var1不会被继承,而在Hoge2中有可能会做出名为$var1的属性,因此,必须要明确区分Hoge1::$var1和Hoge2::$var1。
PHP代码:--------------------------------------------------------------------------------
$hoge = new Hoge2;
echo 'var1: ' . $hoge->var1 . "
\n"; // var1:
// echo 'var2: ' . $hoge->var2 . "
\n"; // Error
echo 'var3: ' . $hoge->var3 . "
\n"; // var3: 3
echo 'var1: ' . $hoge->d_var1() . "
\n"; // var1:
echo 'var2: ' . $hoge->d_var2() . "
\n"; // var2: B
echo 'var3: ' . $hoge->d_var3() . "
\n"; // var3: 3
--------------------------------------------------------------------------------

