2014-12-14 1 views
0

일부 경우에만 인터페이스를 구현할 수 있습니까?현재 API에 따라 구현 인터페이스

우리는 int sdkVersion이 있고 10보다 높은 경우에만 TenPlusInterface 인터페이스가 있다고 가정 해 보겠습니다.

방법 코드, 나는 단지 그것을 확인하고 말할 수 :

if (sdkVersion > 10) { 
    ClassForApiTen cls = new ClassForApiTen(); 
    ... 
} 

을하지만 내 sdkVersion < 10 경우, 나는 public class MyClass implements TenPlusInterface 할 수 없습니다. 정의 된 경우에만 인터페이스를 구현하는 권장 방법은 무엇입니까?

답변

2

클래스의 하위 클래스가 있고 해당 하위 클래스에서 인터페이스를 구현하도록하십시오.

public class MyClass { ... } 

public class TenPlusMyClass extends MyClass implements TenPlusInterface {} 

public class MyClassFactory { 
    MyClass getMyClass(int sdkVersion) { 
     return sdkVersion > 10 ? new TenPlusMyClass() : new MyClass(); 
    } 
} 
+0

감사합니다. (그리고 나는 보호 된 접두어에 대해 sth를 배웠고, 결코 그런 식으로 사용하지 않았다 ;-)) –

0

추상 클래스를 만듭니다. 그리고 Ie.> 10 또는 < 10 조건을 기반으로 내부 클래스를 익명으로 작성할 수 있습니다.