class A extemds F{ public __construct(){
     parent::test();      }}class B extends A{
    public __construct(){
       $this->test();  
 
    }}class C {
   public __construct(){
       var D= new B() // 这时test()也就是 class F里方法执行否?    }} 如果说:var D= new B()  是不是相当也建了一个 A 的对像 D ?同理也 是F 的实体呢?我现在要让 class C 成为一个转发器,也就是说已后处理数据全是在 类似B的类里,简单点说,A是个Core 其它类 继承A 
但是在B里用到F 里的方法好像是用不了的!
怎么回事呢?说的挺乱的,

解决方案 »

  1.   

    class F {
      function test() {
        echo __CLASS__;
      }
    }class A extends F{ 
      public function __construct(){ 
        parent::test();    
      } 
    } class B extends A{ 
        public function __construct(){ 
          $this->test();      } } class C { 
      public function __construct(){ 
        $D = new B(); // 这时test()也就是 class F里方法执行否? 
      } }new C;out:
    F
      

  2.   

    哈哈,我知道了,刚才我在A里初始化了,很多F里的变量,所以在B里有就出现问题了!
      

  3.   

    var D= new B() // 这时test()也就是 class F里方法执行否? -----------var $D = new B();
      

  4.   

    var D= new B()  是不是相当也建了一个 A 的对像 D ?同理也 是F 的实体呢? =======================================没错
      

  5.   

    class F { 
      function test() { 
        echo __CLASS__; 
      } 
    } class A extends F{ 
      public function __construct(){ 
        parent::test();    
      } 
    } class B extends A{ 
        public function __construct(){ 
          $this->test();      } } class C { 
      public function __construct(){ 
        $D = new B(); // 这时test()也就是 class F里方法执行否? 
      } } new C; out: 

      

  6.   

    重载 及 继承 的问题…不知道这样看你会不会明白点 o.o||<?php
    class Base {
    function test() {
    echo __METHOD__ , PHP_EOL;
    }
    }class Level_1 extends Base{
    public function __construct(){
    echo "Level 1 >> ";
    parent::test();
    }
    }class Level_2 extends Level_1{
    public function __construct(){
    echo "Level 2 >> ";
    parent::__construct();

    echo "Level 2 >> ";
    $this->test();
    }
    }class Tester {
    public function __construct(){
    $obj = new Level_2(); // 这时test()也就是 class F里方法执行否?
    }
    }new Tester;
      

  7.   

    呵呵,已经明白了,其实我是做了个小框架,在类似B里 new A了并初始化了许多F(我F就是smarty类)里的变量,所以在D 里再想用F里的方法时,不正确了!
    其实是建了两个实体了!!