php中的多态 php中的多态,有与php是弱类型语言,在定义对象时,不存在类型 如定义一个类A的对象$a = new A() 没有给对象a声明类,故在运行时,当调用a的方法时,是一定会调用A中的方法,这样来看,php是本身就是多态的,所以也就不存在多态。 但是如下代码:
interface Person
{
public function method();
}
class Student implements Person
{
public function method()
{
echo 'student';
}
}
class Teacher implements Person
{
public function method()
{
echo 'Teacher';
}
}
class Context
{
public function test(Person $person)
{
$person->method();
}
}
$context =
new Context();
$context->test(
new Student());
$context->test(
new Teacher());
输出结果
综上,可见php是有多态的,只不过没有java强烈
2.php的向上转型 php 不存在向上转型