我正在学习OO和类,我对PHP中的OO和类有几个问题
据我所知,扩展另一个类的类只是意味着扩展另一个类的类可以访问变量/属性以及它所扩展的类的函数/方法.它是否正确?
我知道静态方法或属性基本上与类外的过程函数或变量相同,并且几乎可以在任何地方使用.它是否正确?
Public表示任何类都可以访问它,Private表示仅封装的类或者从可以访问和使用的所有者扩展的类.它是否正确?
zom*_*bat 11
1)是的,这是正确的.子类继承其父级的任何protected或public属性和方法.声明的任何内容private都不能使用.
2)这是事实.只要加载了类(这与以前的自动加载问题相符),您可以通过作用域解析运算符(::)访问静态方法,如下所示: ClassName::methodName();
3)你有public正确的含义,但正如我前面提到的,private方法只能由声明它们的类使用.
class parentClass
{
private $x;
public $y;
}
class childClass extends parentClass
{
public function __construct() {
echo $this->x;
}
}
$z = new childClass();
Run Code Online (Sandbox Code Playgroud)
上面的代码将导致NOTICE触发错误,因为childClass无法访问$ x.
注意:未定义的属性:childClass :: $ x
如果声明了$ x protected,那么childClass就可以访问了.编辑:声明为protected声明它的类以及扩展它的任何子类可以访问的属性,否则不会访问"外部世界".这是public和之间的一个很好的中间private.
| 归档时间: |
|
| 查看次数: |
148 次 |
| 最近记录: |