class A {
...
$this->foo();
...
}
class B extends A {
...
function foo(){
...
}
...
}
就是说父类的对象可以调用子类中的方法吗?
...
$this->foo();
...
}
class B extends A {
...
function foo(){
...
}
...
}
就是说父类的对象可以调用子类中的方法吗?

1 francis Nov 29, 2011 怎么可能? |
2 frittle Nov 29, 2011 不可以。子类可以调用父类中的方法,把$this->foot(); 和 function foo() {} 的位置对调就成立了。 |
4 Ricepig Nov 29, 2011 但是如果父类里有这个纯虚函数呢?这样就行了吗? |
5 yesmeck Nov 29, 2011 abstruct class A { public abstract public function foo() {} ... $this->foo(); ... } class B extends A { ... function foo(){ ... } ... } 这样就比较好了 |
6 yesmeck Nov 29, 2011 public abstract public function foo() {} 额,多了个public |
7 yesmeck Nov 29, 2011 abstract public function foo(); 擦,这么写一句居然这么多错误。。。。没IDE还写不了代码了。。。。 |
9 freefcw Nov 29, 2011 虚类必然不能实例化。。。 |
10 yesmeck Nov 29, 2011 同上,不能。。 你们叫虚类感觉怪怪的。。。。 |
11 yesmeck Nov 29, 2011 还有虚函数。。。。 |
13 darasion Nov 30, 2011 就是说父类对象不能调用子类中定义的方法。 父类中定义的方法可以调用子类对象的方法。 好像挺拗口。 |
14 phay Nov 30, 2011 如果你要实现的是template pattern。。当然是可以的,只不过静态语言要绕一点(比如区分virutal abstract之类的东西)动态语言一般不需要,比如python,直接像你那样写就行了 |
15 laihj Nov 30, 2011 不太懂PHP的语法 如果$this实例的话,在运行中它本身就是class B吧,只不过代码写在A中而已 |