在下面的代码中,foo
的构造函数可以调用child1
或child2
的构造函数吗?
class child1 extends foo{
function child1(){
do_stuff();
}
}
class child2 extends foo{
function child2(){
do_stuff();
}
}
class foo{
function foo(){
// run child1, child2 etc... ? is it possible?
}
}
new foo();
答案 0 :(得分:3)
不,您只能从父类访问类,而不是相反。父母不知道那些子类存在。
如果您解释了您尝试做的事情的用例,则可能会建议更好的方法。
答案 1 :(得分:0)
在我们讨论如何处理您的问题之前,我想我们应该在您的代码中明确说明您的OOP。
在您的示例中,类foo是基类,并且具有所有类型的foo共有的功能和属性。例如,Foo可能是一棵树。所有树木都有树干,树根,枝条,并将阳光加工成能量。
现在你的child1和child2类将成为foo的后代,并且具有与foo不同或不同的特定内容。例如,child1可能是一个Oak,它是“树”,但添加了leaf属性,acorn属性和hibernate属性。
Child1和Child2知道有关foo的所有信息,但是foo不知道child1和child2存在。
现在,如果我理解你要做什么,你可以通过实例化你的child1和child2类并从另一个类或方法/函数中调用你需要的那些对象来实现它。