如果我有2个类而第一个扩展第二个类,那么第二个类如何从第一个类调用静态函数?
package p1 {
class a {
static function a1() {
//do soemthing
}
}
class b extends a {
static function b1() {
//do something else
}
}
}
a.a1(); // this works
b.a1(); // this doesn't work
b.b1(); //this works
答案 0 :(得分:2)
当“B延伸A”时 - 这实际上与“B类具有A的所有方法和属性”不同。不是类,但是类B的对象实现了在类A中定义的所有属性和方法。当你调用静态方法或属性时 - 你处理的是类而不是对象(它看起来与名称空间的使用非常相似)。
增加: 解决你的任务的唯一方法是覆盖类B中的a1(args)并在... 1字符串代码中调用super.a1(args)。但在我看来,如果不可能避免这种用法,你就会遇到软件架构师的问题。
答案 1 :(得分:-1)
使用super调用父方法。
super.b1();
编辑:好的,看看你写的是什么,我认为你需要将a1的范围设置为公开或受保护。