0
我有一个名为Post的实体类。 Post的父项基于一个名为AbstractPost的抽象类。 AbstractPost有一个变量“作者”,其设置者的签名是在一个名为PostInterface的接口中定义的。扩展一个抽象类来扩展另一个抽象类,并且需要重写父抽象类实现的接口
我处于一个场景,我需要覆盖作者的制定者,但不想修改父母(ofcourse)。
这些是父类:
class Post extends AbstractPost
abstract class AbstractPost implements PostInterface
interface PostInterface
我有以下类别:
class MyPost extends MyAbstractPost
abstract class MyAbstractPost extends AbstractPost implements MyPostInterface
interface MyPostInterface extends PostInterface
但是,我得到的错误:
Fatal error: Declaration of MyAbstractPost::setAuthor() must be compatible with that of PostInterface::setAuthor()
我读过的孩子继承父类的“实现”部分(这里有什么是正确的行话?),所以我想知道如何重写那个。或者我不以正确的方式扩展/实施?
谢谢!
在setAuthor方法中究竟需要改变什么?由于您在界面中定义了方法签名,而您的其他类未正确实施该方法,因此会出现该错误。你可以在错误信息中提到的接口和抽象类中发布代码吗? – martynthewolf 2012-08-15 08:47:05
你不能。如果你有 - 这是一种设计气味 - 你将需要引入一种新的代理方法。 – 2012-08-15 08:47:50
@ delete-me-please好的,我该怎么做? – 2012-08-15 08:51:52