<?php
abstract class Shop{
public static function create(){
//new static(); static类似于self,但它指的是被调用的类而不是包含类。他的意思是将生成一个新的Shop2对象,而不是试图实例化一个shop对象
return new self();
}
}
class Shop1 extends Shop{
public static function create(){
return 'shop1';
}
}
class Shop2 extends Shop{
public static function create(){
return 'shop2';
}
}
print_r(Shop2::create());
?>