仅在某些情况下如何实现接口?

可以说,我们有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();
     }
}

08-06 03:58