2012-02-27 56 views
0

我刚刚开始使用OO PHP,所以请原谅我的无知。在子类对象中访问父项属性

假设我有一个A级

class A{ 
    function show(){ 
     return 15; 
     } 
    } 

和一个孩子的B类

class B extends A{ 
    function show(){ 
     return 25; 
     } 
    } 

当我做

$object = new B; 
$object->show(); 

我得到25,这意味着我访问子属性。我如何访问父项属性;我试着$ object-> A :: show(),$ object :: show(),我不断收到错误,并且由于我刚刚开始,我不知道该怎么去Google。

回答

4

你想做对象设计的冲突基础知识 - 如果覆盖父方法,它不能从子实例外部调用(在父::内部)。看看你的设计,并试图弄清楚,如何避免这种情况。

编辑: 你调用这个例子两者都是无效的 - 唯一有效的是

class B extends A{ 
    function show(){ 
    return parent::show(); 
    } 
} 
+0

这不是一个真实的世界的情况,我只是learnig,所以我试图找到我的方式围绕各种情况。你是在暗示我想要的是不可能的?在PHP中是 – ppp 2012-02-27 09:01:30

+0

是的,例如在C++中它可以被解决,但它仍然是有效的,因为对象B必须具有完整的功能,所以你不需要直接调用父方法 – SergeS 2012-02-27 09:04:15

1

要覆盖在子类中的性能表现,所以要访问它的父类,你必须实例化类的一个对象

$object = new A(); 
$object->show(); 

现在有办法acccess父对象功能展示()和子类的实例

+0

我想要做一个B对象。我不需要,因为我只是在学习,但我想知道如何用B对象来完成。 – ppp 2012-02-27 09:00:13

+0

你可以在子类的显示功能中使用parent :: show()。因为这是返回2个不同的值,这并不是真的有一个点,虽然 – clem 2012-02-27 09:03:22