目前有一个类说A,其最后的方法是mainMethod(),它调用三个方法a(),b()和c()。现在,子类必须实现a和b所以我把它们抽象化了。但可能不需要c。我该如何实现?我正在使用PHP。
答案 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或其他能够进行代码提示的东西,还会显示注释,这样程序员就会知道函数的用途。