php中抽象类在其方法中例化其子类来完成对自己方法的调用

时间:2022-09-30 12:55:10

初学,遇到这,不能悟出其中的妙处,记录下;
大体的逻辑如下

abstract class A {
    private static $c;
    final function todo() {
        //do something
    }
    public function init() {
        $c = new B;
    }
    public function get() {
        $c->todo();
    }
}
class B extends A {

}
....
A::get();

这里产生的几个疑问:
1、在父类中可以new一个子类吗
2、这样做的考虑是什么?或者这种设计模式是在避免什么样的问题出现?