仅在某些情况下如何实现接口?
可以说,我们有int sdkVersion
,并且只有当它高于10
时,接口TenPlusInterface
存在。
对于方法中的代码,我可以检查一下并说:
if (sdkVersion > 10) {
ClassForApiTen cls = new ClassForApiTen();
...
}
但是,如果我使用
sdkVersion < 10
,则不能执行public class MyClass implements TenPlusInterface
。那么,建议仅在定义的情况下实现接口的方法是什么?
最佳答案
有一个类的子类,并让该子类实现接口。
public class MyClass { ... }
public class TenPlusMyClass extends MyClass implements TenPlusInterface {}
public class MyClassFactory {
MyClass getMyClass(int sdkVersion) {
return sdkVersion > 10 ? new TenPlusMyClass() : new MyClass();
}
}