2017-02-02 1 views
-1

getResolution이라는 클래스로 ParentImageTransformation 클래스가 있습니다. 이제 덮어 쓰기 된 getResolution 메서드를 사용하는 새로운 클래스 ChildImageTransformation이 생겼습니다. 덮어 쓰기 방법을 사용해야하는 경우 나에게 알려주는 구성이 있습니다.하위 클래스의 구성으로 상위 클래스를 사용하는 방법

ChildImageTransformation 클래스를 인스턴스화 할 수 있습니까? 구성에 따라 올바른 getResolution 메서드를 사용합니까?

답변

3

가장 쉬운 예로 정의하는 것입니다 :

class ChildImageTransformation extends ParentImageTransformation { 
    private boolean useParent; 

    public ChildImageTransformation(boolean useParent) { 
    this.useParent = useParent; 
    } 

    public int getResolution() { 
    if (useParent) { 
     return super.getResolution(); 
    } else { 
     return <something>; 
    } 
    } 
} 

그런 다음 당신은 클래스를 인스턴스화 할 수 있으며,이 true에 부울을 설정하면 방법은 슈퍼 클래스에 위임합니다.

+0

안녕하세요, 제 질문은'getResolution' 메소드에서'useParent' 체크를 피하는 방법에 관한 것입니다. 클래스를 인스턴스화하여 모든 가능한 메서드에 사용할 수 있도록 할 수 있습니까? –

+0

getResolution 메서드 구현을 정의하는 생성자에 람다를 전달할 수 있습니까? –

관련 문제