php声明一个父类,定义一个公有属性,私有属性公有方法,再声明一个子类重写父类中的一个方法,并打印输出父类中的私有属性
时间: 2024-11-05 18:29:27 浏览: 22
C#子类对基类方法的继承、重写与隐藏详解
在PHP中,声明一个父类(Parent Class)通常包含公共(public)属性和方法,以及私有(private)属性。例如:
```php
// 父类(Person)
class Person {
public $publicAttribute; // 公共属性
private $privateAttribute; // 私有属性
public function showPublicAttribute() { // 公有方法
echo "This is a public attribute: " . $this->publicAttribute;
}
// 私有方法不会直接从外部访问
private function showPrivateAttribute() {
echo "This is a private attribute: " . $this->privateAttribute;
}
}
```
然后你可以创建一个子类(Child Class),并重写父类的一个方法,如上面的`showPublicAttribute()`:
```php
// 子类(Employee)继承自Person
class Employee extends Person {
// 子类可以覆盖父类的方法
public function showPublicAttribute() {
parent::showPublicAttribute(); // 调用父类的方法
echo "\nEmployee-specific code: " . $this->privateAttribute; // 访问父类的私有属性,需通过parent关键字间接访问
}
}
```
现在你可以实例化子类并操作:
```php
$employee = new Employee();
$employee->publicAttribute = 'John Doe'; // 设置公共属性值
$employee->showPublicAttribute(); // 输出公共属性
// 尝试访问私有属性会报错,因为它们是私有的
// try {
// echo $employee->privateAttribute;
// } catch (Error $e) {
// echo "Cannot access private property";
// }
```
阅读全文