0

Post というエンティティ クラスがあります。Post の親は、AbstractPost と呼ばれる抽象クラスに基づいています。AbstractPost には変数「作成者」があり、セッターの署名は PostInterface というインターフェースで定義されます。

私は、作成者のセッターをオーバーライドする必要がある状況にありますが、親を変更したくありません (もちろん)。

これらは親クラスです:

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

ただし、次のエラーが表示されます。

致命的なエラー: MyAbstractPost::setAuthor() の宣言は、PostInterface::setAuthor() の宣言と互換性がある必要があります

私は、子が親クラスの「実装」部分 (ここで正しい専門用語は何ですか?) を継承することを読んだので、それをオーバーライドする方法を知りたいと思います。または、正しい方法で拡張/実装していませんか?

ありがとう!

4

1 に答える 1

0

答えはノーだ。

メソッド シグネチャをオーバーロードすると、インターフェイスを持つ目的が無効になります。

于 2012-08-17T14:51:54.800 に答える