PHP中面向对象编程有三大特征:封装、继承和多态。
封装
封装是指将对象的属性和方法封装在类中,并对外部数据提供访问接口,通过这些接口来控制外部数据的使用。在PHP中,可以通过访问修饰符(public、protected、private)来限制属性和方法的访问权限。
示例
class Person {
private $name;
public function getName() {
return $this->name;
}
public function setName($name) {
$this->name = $name;
}
}
$person = new Person();
$person->setName("张三");
echo $person->getName(); // 输出:张三
在上面的示例中,将$name属性封装成了private私有属性,通过公共的getName()和setName()接口来实现访问和修改$name属性的操作。
继承
继承是指一个类可以从其他类中继承属性和方法。被继承的类称为父类,继承它的类称为子类。子类可以继承父类的属性和方法,并且可以添加自己的属性和方法。
示例
class Animal {
protected $name;
public function __construct(String $name) {
$this->name = $name;
}
public function eat() {
echo "{$this->name}正在吃东西。";
}
}
class Cat extends Animal {
public function catchMouse() {
echo "{$this->name}正在抓老鼠。";
}
}
$cat = new Cat("小猫");
$cat->eat(); // 输出:小猫正在吃东西。
$cat->catchMouse(); // 输出:小猫正在抓老鼠。
在上面的示例中,Cat类继承了Animal类,Cat类中添加了自己的方法catchMouse(),同时也可以使用父类Animal中的方法eat()。
多态
多态是指子类可以重写父类的方法,并且可以以自己的方式实现该方法。父类的方法被子类重写后,当调用该方法时会调用子类的方法。
示例
class Animal {
public function makeSound() {
echo "动物正在发出声音。";
}
}
class Cat extends Animal {
public function makeSound() {
echo "猫正在发出声音。";
}
}
class Dog extends Animal {
public function makeSound() {
echo "狗正在发出声音。";
}
}
$cat = new Cat();
$dog = new Dog();
$cat->makeSound(); // 输出:猫正在发出声音。
$dog->makeSound(); // 输出:狗正在发出声音。
在上面的示例中,Animal类有一个公共的makeSound()方法,Cat和Dog类都重写了该方法,通过多态性质,可以调用子类中的方法makeSound()。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:全面解析PHP面向对象的三大特征 - Python技术站