子类函数的父类继承

时间:2012-03-28 04:14:47

标签: php class function inheritance abstraction

我正在为wordpress编写一个电源插件,它基本上提供了许多功能,使开发更容易。

不要担心wp的东西,这是一个PHP问题。我有一个大师班级'my_wp_funcs',以及其他一些做不同事情的大班,我已经单独编写并独立工作,例如:插入新帖子。

我希望能够使用这种语法:

$wpfuncs = new funcs;
$wpfuncs->createpost($args);
$wpfuncs->addimage();

其中createpost类扩展了funcs类,以及其他扩展func的类。

我一直在阅读抽象,但我一直在犯错误。这是我所拥有的修剪版本:

<?php

$wpfuncs = new funcs;
$wpfuncs->createpost($args);

abstract class funcs
{
    abstract protected function createpost();

    public function createpost($args){
        $tool = new $this->boss_posttype('derp', 'derps');
    }
}

class createpost extends funcs{
    public function __construct(){
        //do stuff
    }
}

为任何帮助干杯!

1 个答案:

答案 0 :(得分:0)

您无法在抽象类中将方法定义为abstract,然后在同一个类中将其定义为真实。你也不能直接调用抽象类。

你可能想要这样的东西:

abstract class funcs
{
    abstract public function createpost($args);
}

class myFuncs {
    public function createpost($args){
        $tool = new $this->boss_posttype('derp', 'derps');
        // do other stuff
    }
}


$wpfuncs = new myFuncs();
$wpfuncs->createpost($args);

请注意,您的实现将在您自己的类中进行,并且该实现必须与您的抽象定义相匹配。 (他们都必须公开,他们必须接受相同的论点)