[英]Can I call a constructor of a subclass from the parent class?
在下面的代码中, 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();
不,您只能从父 class 访问类,而不是相反。 父母不知道这些子类存在。
如果您解释您正在尝试做的事情的用例,那么有人可能会提出更好的方法。
在我们讨论如何处理您的问题之前,我认为我们应该澄清一下您在此处的代码中显示的 OOP。
在您的示例中, class foo 是基础 class 并且具有所有类型的 foo 共有的功能和属性。 例如,Foo 可能是一棵树。 所有的树木都有树干、树根、树枝,并将阳光转化为能量。
现在您的 child1 和 child2 类将是 foo 的后代,并且具有与 foo 不同或不同的特定内容。 例如,child1 可能是一棵“是”树的 Oak,但添加了 leaf 属性和 acorn 属性以及 hibernate 属性。
Child1 和 Child2 知道有关 foo 的所有信息,但 foo 不知道 child1 和 child2 的存在。
现在,如果我了解您要做什么,您将通过实例化您的 child1 和 child2 类并从另一个 class 或方法/函数中调用这些对象所需的任何方法来实现它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.