了解PHP类层次结构和类型转换


Understanding PHP class hierarchies and casting

我正在努力了解如何在PHP中使用类层次结构。在Java编程中,我可以做这样的事情:

public class ClassOne extends SuperClass{
}
public class ClassTwo extends SuperClass{
}
public class SuperClass{
}

现在,当我将一个对象实例化为unknownclass = new SuperClass();时,我就可以将这个unknownclass强制转换为它在运行中扩展的任何类。

我的问题是,这如何适用于PHP?你是如何使用它的?

多态性的主要好处是能够传递通用需求的特定内容,前提是特定内容响应通用需求。因此,给定以下通用要求:

public function doSomethingWith(Superclass obj)

可以将Superclass的实例或其任何子类传递给doSomethingWith。但为了使其有用且"安全",Superclass的子类需要实现至少Superclass相同的公共成员。因此,如果Superclass有一个名为execute的方法,那么ClassOneClassTwo需要有相同的方法,要么继承Superclass的实现,要么重写它并定义一个新的实现,只要重写的方法具有相同(或多态兼容)的签名。这为您提供了很大的行为灵活性,因为同一通用需求的不同实现可能会产生差异。