如何在PHP中将祖先分配给后代类型 - 类类型转换

时间:2015-09-14 09:20:31

标签: php inheritance casting descendant

我试图将一个祖先(A)分配给后代(B)类型变量,并在PHP的祖先上调用后代方法,但我无法使其正常工作。

class B extends A{
   public function c(){ echo 'B.c'}
}

我试过了:

  1. 重写B构造函数

    class B extends A{
        public function __construct($parent)
        {
            $this = $parent;
        }
        ...
    }
    
  2. $this无法重写,所以这是不行的。

    1. 这件事我忘记了怎么称呼

      function d(B $b){ 
          $b = new A(); 
          b.c();
      }
      
    2. 显式类型转换

      function d(){
          $b = (B) new A();
          b.c();
      }
      

      function d(){ 
          $b = settype(new A(),'B');
          b.c()
      }
      
    3. 这不起作用,因为settype仅允许某些类型而非其他用户定义的对象类型。

0 个答案:

没有答案