2012-08-15 6 views
0

게시라는 엔티티 클래스가 있습니다. 포스트의 부모는 AbstractPost라는 추상 클래스를 기반으로합니다. AbstractPost에는 setter의 서명이 PostInterface라는 인터페이스에 정의 된 "author"변수가 있습니다.다른 추상 클래스를 확장하고 추상 추상 클래스가 구현하는 인터페이스를 재정의해야하는 추상 클래스를 확장합니다.

나는 저자의 설정자를 덮어 쓸 필요가 있지만 부모 (ofcourse)를 수정하고 싶지 않은시 ututation에있다. 나는 다음과 같은 클래스가

class Post extends AbstractPost 
abstract class AbstractPost implements PostInterface 
interface PostInterface 

:

다음은 상위 클래스입니다 나는 아이들 읽었습니다

Fatal error: Declaration of MyAbstractPost::setAuthor() must be compatible with that of PostInterface::setAuthor()

그러나

class MyPost extends MyAbstractPost 
abstract class MyAbstractPost extends AbstractPost implements MyPostInterface 
interface MyPostInterface extends PostInterface 

를, 나는 오류 부모 클래스의 "implements"부분을 상속 (여기서는 올바른 용어는 무엇입니까?)하므로 오버 라이딩하는 방법을 알고 싶습니다. 그거. 아니면 올바른 방법으로 확장/구현하지 않습니까?

감사합니다.

+0

정확히 setAuthor 메소드에서 변경해야하는 것은 무엇입니까? 인터페이스에서 메소드 서명을 정의했고 다른 클래스가 메소드를 올바르게 구현하지 않아서 오류가 발생했습니다. 오류 메시지에 언급 된 인터페이스 및 추상 클래스 내에 코드를 게시 할 수 있습니까? – martynthewolf

+0

수 없습니다. 디자인 냄새가 있다면 새로운 프록시 방법을 도입해야합니다. –

+0

@ delete-me-please 알았어. 어떻게 그럴 수 있니? –

답변

0

대답은 없습니다.

메서드 서명을 오버로드하면 인터페이스가 필요하지 않습니다.

관련 문제