面向对象之类的继承与派生

继承与派生是同一过程从不同的角度看,保持已有类的特性能够而构造new class的过程是继承,在已有类的基础上新增自己的特性而产生新类的过程称为派生。派生的目的,当新的问题出现,原有程序无法解决或者不能完全解决时候,需要对原有程序进行改造。c++支持多继承,php则是单继承,不过php可以通过使用interface或者使用 魔术方法__call,将各个父类实例化,然后作为子类的属性。这些父类提供一些公有的方法。当子类拥有某方法时,__call()函数不会被调用。这相当于“覆盖”了父类的 方法。当调用了不存在的方法时,通过__call()方法依次从父类中寻找可以调用的方法。虽然这不是完备的多继承,但可以帮助我们解决问题。还有一个方法,php5.4中新增了traits,Traits可以理解为一组能被不同的类都能调用到的方法集合,但Traits不是类!不能被实例化。下面看个简单例子

// Trait address
trait Address{
    private $address;
    public getAddress() {
        eturn $this->address;
    }
    public setAddress($address) {
        $this->address = $address;
    }
}
// Class Business
class Business{
    use Address;
    // 这里可以使用address属性
}
// Class Individual
class Individual{
    use Address;
    //这里可以使用address属性
}
// Class Order
class Order{
    use Address;
    //这里可以使用address属性
}


nickname
content