1
public abstract class SomeBaseClass extends Fragment {
protected static final String INT_TAG = "int_tag";
protected int someInt;
//...
}
public class ChildClass extends SomeBaseClass {
public static ChildClass newInstance(int argInt) {
Bundle args = new Bundle();
bundle.putInt(INT_TAG, argInt);
ChildClass fragment = new ChildClass();
fragment.setArgs(args);
return fragment;
}
public void onCreate() {
someInt = getArguments().getInt(INT_TAG);
}
//...
}
不過我聽說這是一個壞主意,用在抽象類中受保護的變量由於某種原因(我不知道爲什麼)。有什麼選擇?
protected成員變量,違反了面向對象的主要原理:封裝(又名信息隱藏)。但簡單地將它們設置爲私有的並添加(受保護的)getter/setter方法不會改變它。通過在(抽象)基類中聲明屬於擴展類的變量,而不需要在每個子類中聲明變量,繼承經常被誤用於代碼重用。所以我能說的最好的是:總是在那個真正使用它們的類中聲明你的變量'private'。 –
@TimothyTruckle抽象類和私人不能很好地合作 – developer
@javaguy對我來說,它完美的工作。 –