« 上一篇下一篇 »

在PHP中实现继承

如果类是另一个类的子类,可以关键词“extends”来指明其继承关系。如下代码创建了一个名为B的类,它继承了在它面前定义类A。

class  B  extends A
{
 public $attribute2;
 function operation2()
 {
 }
}
如果类A具有如下所示的声明
class A
{
 public   $attributel;
 function operation1()
 {
 }
}

则如下所示的所有对类B对象的操作和属性的访问都是有效的:

$b = new B();
$a->operation1();
$a->attributel = 10;
$a->operation2();
$a->attribute2 = 10;

请注意,因为类B派生于类A,所以可以使用操作operation1()和属性$attributel,尽管这些操作和属性是在类A里面声明的。作为A的子类,B具有与A一样的功能和数据。此外,B还声明了自己的一个属性和一个操作。

值得注意的是,继承是单方向的。子类可以从父类或超类继承特性,或父类却不能从子类继承特性。也就是说,如下所示的最后两行代码是错误的:

$a = newA();
$a->operation();
$a->attribute1 =10;
$a->opertion2();
$a->attribute2 = 10;

类A中并没有operation2()操作或attribute2属性。

« 上一篇下一篇 »