如何在类中实现一个函数,该类可能会或可能不会在子类中被覆盖?

时间:2015-02-06 16:53:14

标签: php oop inheritance

目前有一个类说A,其最后的方法是mainMethod(),它调用三个方法a(),b()和c()。现在,子类必须实现a和b所以我把它们抽象化了。但可能不需要c。我该如何实现?我正在使用PHP。

1 个答案:

答案 0 :(得分:1)

只需创建一个空的非抽象方法,并在注释中描述它可能被覆盖。 E.g:

abstract class A 
{
    public abstract function a();
    public abstract function b();

    /**
     * This method may be overwritten for purpose X ...
     */
    public function c() 
    {
        /* empty */
    }
}

这样你可以拨打c(),它可能有也可能没有任何功能。继承类被强制实现a()b(),并且可以选择覆盖c()。一个很好的php编辑器,比如NetBeans或其他能够进行代码提示的东西,还会显示注释,这样程序员就会知道函数的用途。