abstract class Css { abstract protected function parse($data); } abstract class CssElem extends Css { abstract protected function parse($data); } class Modifier extends CssElem { function __construct($data = null) { if( $data ) $this->parse ($data); } protected function parse($data) { // Some code... } }
它给了我
[Mon Jul 8 13:21:10 2013] PHP Fatal error: Can’t inherit abstract
function Css::parse() (prevIoUsly declared abstract in CssElem) in
/home/arthur/NetBeansprojects/capa/CssElem.PHP on line 21 [Mon Jul 8
13:21:10 2013] 127.0.0.1:41207 [500]: / – Can’t inherit abstract
function Css::parse() (prevIoUsly declared abstract in CssElem) in
/home/arthur/NetBeansprojects/capa/CssElem.PHP on line 21
第21行是抽象保护函数解析($data);在CssElem.
我更熟悉Java中的OOP,但根据the doc …
abstract class CssElem extends Css { // abstract protected function parse($data); // <-- take this away }
参见文档中的this comment.
引用来自评论:
An abstract class that extends an abstract class can pass the buck to its child classes when it comes to implementing the abstract methods of its parent abstract class.
原文地址:https://www.jb51.cc/php/140076.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。