什么是实现一个功能?通常情况下,我所知道的是实现具有是否正在接口类中实现一个函数?
function foo();
和实施类似
function foo($bar)
另一类
但接口什么,当我实现该接口的功能会发生什么?我是否必须在子类中重新实现它们?或者我可以直接在子类中使用它们,假设它们在子类中实现。
interface ibarbar{
function foo($bar)
{
return $bar.$bar;}
}
class barbar implements ibarbar
{
function baz()
{
$this->barbar(); //used without implementing in subclass. expected results unknown.
}
}
PHP文件说
// This will not work
// Fatal error: Class BadTemplate contains 1 abstract methods
// and must therefore be declared abstract (iTemplate::getHtml)
class BadTemplate implements iTemplate
{
private $vars = array();
public function setVariable($name, $var)
{
$this->vars[$name] = $var;
}
}
所以在接口中的所有方法都是抽象的方法。但我找不到如何扩展一个函数。或实现功能
我认为接口的一点是你没有实现...如果你想在子类中使用函数,你不需要一个“父”类吗? – Matthew
我相信当你这样做的时候,这是一个[抽象类](http://php.net/manual/en/language.oop5.abstract.php)。 –