public、protected、private属性

属性 外部 子类 内部
public 可以 可以 可以
protected 不行 可以 可以
private 不行 不行 可以

注意:设置了访问的修饰符后,类继承时总是保持一种“是一”的关系。因此,如果一个父类把一个成员变量声明成为公共的成员,继承的子类也必须把它声明为公共成员。否则,子类将不能与父类保持“是一”的关系,这种关系意味着你对父类的任何修改也会影响子类。

createDbConnection();
$this ->setDbConnection($conn);
return $conn;
}

/**
* 该方法可能会被继承的类修改,所以使用protected
* @return resource
*/
protected function createDbConnection()
{
return mysql_connect("localhost");
}

/**
* 该方法只会被内部调用,所以使用private
* @param $conn
*/
private function setDbConnection($conn)
{
$this->dbConnection=$conn;
}
}

class MyFooDotComDbConnectionClass extends MyDbConnectionClass{
/**
* 由于要保持"是一"的关系,这里不能使用private,能使用public,protected。只能越来越开放
* @return resource
*/
public function createDbConnection()
{
return mysql_connect("foo.com");
}
}

注意:如果没有给一个方法设置访问的修饰符,会被默认为public修饰符。

你可能感兴趣的:(public、protected、private属性)