从父类创建对象并从子类调用类

时间:2015-09-21 12:22:30

标签: php oop

我创建了一个类,但是很大,并且需要很多方法。我想切片分开子类。

我尝试这样的事情:

class ParentClass{

}

class ChildClass1 extends ParentClass{

      public function childFunction1(){

      }

}

class ChildClass2 extends ParentClass{

      public function childFunction2(){

      }

}

$myObject = new ParentClass();
$myObject->childFunction1();
$myObject->childFunction2();

<小时/> 但不工作。
这可能吗?
有没有替代解决方案?

3 个答案:

答案 0 :(得分:1)

不,它不会那样工作。你正在做的是实例化一个空类并尝试在其上调用方法。

您应该使用composition代替。基本思路是将compose多个对象放入主对象中。根据功能中断对象。永远记住要遵循Single Responsibility Principle和其他SOLID。

答案 1 :(得分:0)

class ParentClass {

}


class ChildClass1 extends ParentClass{

    public function childFunction1(){

    }

}

class ChildClass2 extends ParentClass{

    public function childFunction2(){

    }

}

$myObject1 = new ChildClass1();
$myObject2 = new ChildClass2();
$myObject1->childFunction1();
$myObject2->childFunction2();

我觉得它就像这样

答案 2 :(得分:0)

我已经找到了解决方案。

class ParentClass{

      public function childFunctions($className,$functionName){
           $c = ucfirst($className);
           $$className = neew $c();
           return $$className->$finctionName(); // or echo
      }

}

class ChildClass1 extends ParentClass{

      public function childFunction1(){

      }

}

class ChildClass2 extends ParentClass{

      public function childFunction2(){

      }

}
$myObject = new ParentClass();
$myObject->childFunctions("ChildClass1", "childFunction1");
$myObject->childFunctions("ChildClass2", "childFunction2");

这对我的问题有用。也许有人有同样的问题。

无论如何,谢谢你。