2012-02-08 1 views
0

는 설정 다음을 고려해보십시오서브 클래스가 오버라이드없이 슈퍼 메서드를 향상시킬 수 있습니까?

- SomeFilter extends Filter 
- Filter implements Runnable 
- Filter provides run() implementation 

SomeFilter 그것이 superrun() 및 비트 더 사용하도록하는 방법이 있나요?

run() 내부의 논리는

- MyFilter extends Filter 
- MyOtherFilter extends Filter 

충분히 일반적이지만, 자신의 특정 사건 처리 코드의 몇 가지 추가 라인은 슈퍼의 run()있어 사용하여 추가 할 것이라고, SomeFilter위한 것이 아닙니다?

할 방법이 있습니까 SomeFilterrun()을 모두 대체 하시겠습니까?

+2

(super를 사용하여) 상위 클래스에서 메소드를 호출하는 방법을 알고 있다고 가정하면 왜 "오버라이드 외의"방법을 찾고 있습니까? – eternaln00b

답변

5

예. SomeFilter 내부 :

@Override 
public void run(){ 
    super.run(); 
    // custom run code 

} 
+0

이것이 Runnable 인터페이스에서 오는 "실행"과 동일한 경우에는 개인용이 될 수 없습니다. – eternaln00b

+1

뭔가가 합쳐지지 않습니다. (1) 필터는'java.lang.Runnable'을 구현합니다. (2)'java.lang.Runnable'은 공용 실행 메소드를 가지고 있습니다. 'super.run'은 어떻게 보이지 않을까요? – emory

관련 문제